设定了监控点之后,小程序会取得最新位置,判断各个监控点的到达,离开情况并播放提示音。很多情况下,用户会希望这些信息可以保存起来以便将来使用。

这就是今天的主题:在小程序中保存设定信息。

API

位置闹铃使用微信小程序API中以下的数据缓存接口保存设定信息,本节内容来自微信小程序开发文档。

wx.setStorageSync(KEY,DATA)

将 data 存储在本地缓存中指定的 key 中,会覆盖掉原来该 key 对应的内容,这是一个同步接口。

参数说明:

参数 类型 必填 说明
key String 本地缓存中的指定的 key
data Object/String 需要存储的内容

wx.getStorageSync(KEY)

从本地缓存中同步获取指定 key 对应的内容。

参数说明:

参数 类型 必填 说明
key String 本地缓存中的指定的 key

代码实现

设定信息

保存操作的对象是Alarm数组,每个Alarm对象的结构如下:

上半部分是数据成员,下半部分是prototype。需要保存的是数据成员部分。稍微注意一下原型信息,它列出了Alarm类的方法,表明这个数据是一个Alarm对象。

保存数据

只要一行代码。

wx.setStorageSync('alarms', this.globalData.alarms)

只是这么一个简单的操作,所有数据都可以被保存。严格地讲,表示状态的部分是不需要保存的,但是为了处理简单这里就不做区分了。

取出数据

如果是一般的情况,也是只要一行。

this.globalData.alarms = wx.getStorageSync('alarms') || []

这是取出地数据是这样的:

对象属性数据的部分和保存时是一样的;下面的prototype部分不一样的。原因应该是API不认识Alam类,所以保存和取出时只是作为一般对象来处理。

为了解决这个问题,位置闹铃在取出数据时进行了如下处理:

var that = this

var alarm_array = wx.getStorageSync('alarms') || []

alarm_array.forEach(function(alarm_data){

that.globalData.alarms.push(new Alarm(alarm_data));

})

首先作为一般的数据对象取出,然后根据数据对象创建Alarm对象。

参考资料

wx.setStorageSync

https://mp.weixin.qq.com/debug/wxadoc/dev/api/data.html#wxsetstoragesynckeydata

wx.getStorageSync

https://mp.weixin.qq.com/debug/wxadoc/dev/api/data.html#wxgetstoragesynckey

位置闹铃源代码

https://github.com/xueweiguo/alarmmap

写在文章的最后

既然已经读到这里了,拜托大家再用一分钟时间,将文章转发到各位的朋友圈,微信群中。本公众号的成长需要您的支持!
以上就是今天的文章,欢迎点赞并推荐给您的朋友!
更新文章,请扫描下面二维码,关注微信公众号【面向对象思考】

EAUML日拱一卒-微信小程序实战:位置闹铃 (17)-保存和取出设定信息相关推荐

  1. EAUML日拱一卒-微信小程序实战:位置闹铃 (5)-显示所在位置的信息

    假设我们指定了多个监控点,接下来的需求就是给每个监控点取名字.如果是手动输入的话,会比较麻烦.所以位置闹铃再向前走一步,从地图上取得监控点所在位置的信息作为监控点的名称. 画面说明 当我们选定监控点以 ...

  2. EAUML日拱一卒-微信小程序实战:位置闹铃 (18)-差不多就这样了

    经过一段时间地实现和测试,位置闹铃小程序开发也渐渐接近尾声了.作为一个练习,差不多也就这样了. 今天介绍小程序的功能. 启动小程序 扫描下面的二维码即可启动位置闹铃小程序. 功能介绍 首先是主画面,第 ...

  3. EAUML日拱一卒-微信小程序实战:位置闹铃 (15)-实现监控点状态迁移功能

    简单地设计以后,就可以开始着手实现了. 接近监控点 enterAlarmCheck: function (distance, accuracy){ if (this.state == 'ready') ...

  4. EAUML日拱一卒-微信小程序实战:位置闹铃 (19)-发布微信小程序

    小程序的功能实现之后,经过一段时间地测试,接下来就是发布了. 在开发工具的上面偏右的位置,有一个[上传]按钮,按下它就可以将小程序上传到微信小程序公众号. 登录自己的小程序帐号,进入开发管理页面. 画 ...

  5. EAUML日拱一卒-微信小程序实战:位置闹铃 (16)-单元测试是个技术活

    程序设计,实现之后的下一个环节就是单元测试了.对于位置闹铃小程序来讲,带着设备到处移动以测试监控点的状态迁移就是一个必经之路,但是如果所有环节都通过实地测试来解决,那将耗费大量的时间和体力. 我们的选 ...

  6. EAUML日拱一卒-微信小程序实战:位置闹铃 (8)-WXML条件渲染

    需求 按照位置闹铃程序的设计,当设备接近或者离开某个区域时,可以播放提示音,也可触发记时器动作.按照设计,我们的画面是这样的. 提示音选择画面 计时器选择画面 实现方式 一般来讲,根据动作动作类型选择 ...

  7. EAUML日拱一卒-微信小程序实战:位置闹铃 (6)-播放音频

    昨天停更了一天,不是作者偷懒,而是掉到了一个坑里.本来以为播放音频很简单,但是还是遇到的各种问题,比如: 1)小程序无法播放手机存储目录中的文件,只能播放网上的或者是小程序暂存的文件. 2)播放暂存文 ...

  8. EAUML日拱一卒-微信小程序实战:位置闹铃 (20)-发布微信小程序(续)

    头一天晚上申请,到第二天早上也没有通过,所以就有了这篇续. 审批通过以后,首先手机的服务通知收到这个: 登录小程序帐号,画面的右上角也会有提示. 这时的开发管理页面是这样的: 可以看到审核版本栏版本号 ...

  9. EAUML日拱一卒-微信小程序实战:位置闹铃 (14)-分析监控点状态

    将监控点包装成一个类以后,接下来应该就是设计和实现监控点功能了.今天先是设计.我们分接近监控点和离开监控点两种情况讨论. 接近监控点 ready状态 监控点工作状态,小程序会对设备位置进行监控,如果有 ...

最新文章

  1. HarmonyOS 字体在自身控件中居中(使用text_alignment)
  2. 七夕要到了,用Python比心表白
  3. Ubuntu 16.04网速慢解决方法
  4. VirtualBox虚拟机菜单选项隐藏后重现
  5. pytorch test单张图片_PyTorch版EfficientDet比官方TF实现快25倍?这个GitHub项目数天狂揽千星...
  6. ttl电路制作pong游戏_如何玩Mozilla Firefox的隐藏的独角兽Pong游戏
  7. micropython webrepl_4-5 MicroPython WebREPL 命令行交互环境设置-2 接入点模式
  8. 面试官系统精讲Java源码及大厂真题 - 40 打动面试官:线程池流程编排中的运用实战
  9. Tomcat7出现HTTP Status 500 - java.lang.ClassCastException: org.apache.jasper.el.ELContextImpl cannot b
  10. 无人驾驶(ncnn学习)
  11. State and Notifications Broker
  12. Hadoop伪分布式集群环境搭建
  13. 三相同步电机怎么接线图_三相异步电机的正反转原理图解
  14. 计算机nie,聂眉宁-西南石油大学 - 计算机科学学院
  15. G1调优实践日记--G1HeapWastePercent和InitiatingHeapOccupancyPercent的应用
  16. MySQL pt工具应用
  17. 设计师如何提高个人的色彩搭配能力?
  18. 微信答题赚钱每题5元,搞兼职还不如做项目!
  19. SpringMVC(JSON数据转换,乱码问题)
  20. CUDA编程学习3——并行计算初窥CUDA的软硬件架构

热门文章

  1. swift版QQ音乐播放器(一)
  2. Python爬虫之scrapy框架-爬取小说信息
  3. php javascript wav波形绘制,php分析.wav文件并绘制png格式的波形图_php技巧
  4. 表达母亲节快乐的c语言编程,表达母亲节快乐的祝福语锦集38句
  5. 微型计算机原理中的mov,微机原理考试题目类型
  6. 重庆科技学院数理学院mysql的期末考试_数据库期末考试重庆科技学院A.doc
  7. 新攻击使黑客可以解密VoLTE加密以监视电话
  8. vue uniapp 折叠功能实现
  9. 戴尔笔记本连接无线网络不能上网的解决方法
  10. 多线程基础(四)之死锁