1. 关于小程序正式版本的启动页
小程序上传代码成为体验版, 可以设置扫码后进入的页面地址; 然而提审成为正式版本没有设置启动页路径的选项, 启动页是选取 App.JSON 里面 pages 下配置的第一条页面路径作为启动页
上面小程序正式版本的启动页就是 welcome 页面
2. 关于微信开发工具有数据, 真机访问开发版或者体验版没有数据的情况
这个问题是 wx.request 的接口地址没设置在小程序的合法域名
3. 在数据绑定的时候, 使用 wx:for 循环, 声明 wx:key 的一些说明
使用 wx:for 循环遍历的时候, 要在后面声明一个 wx:key, 它的值必须是遍历的数据中不是相同且不会动态改变的值, 一般会取数组的每一个 id 在作为 wx:key 的值, 例如遍历的数据是:[{id: "2", name: "大强"},{id: "1", name: "大强"}];
如果遍历的数组本身就是不同, 例如遍历的数据是:['1','2','3'] 直接用 wx:key="*this";
4.canvas 绘图及图片保存本地相册的问题
用 canvas 绘图的时候, 对绘成图的 canvas 的操作要放在 canvas.draw() 的回调中操作, 不然可能会出现图没绘成功, 后续的操作已经执行
图片要保存在本地的相册, 需要将所有的图片先保存在本地路径, 需要在小程序后台配置安全的 downloadfile 域名
将 canvas 生成的图片保存到手机本地相册具体步骤:
1. 将 canvas 上存在的网络图片的域名配置成安全的 downloadfile 域名, 位置在小程序官方后台的设置 - 开发设置 - 服务器域名处配置
2. 使用 wx.getImageInfo 获取图片的本地路径, path 为本地路径
- wx.getImageInfo({
- src: 'xxx.png',// 图片路径
- success: function(res) {
- var path = res.path;
- that.setData({
- bg_title: path
- })
- }
- });
3. 将 canvas 生成临时路径, 再在生成临时路径的回调中调用保存到手机的 API 就可以了
- // 生成临时地址
- wx.canvasToTempFilePath({
- canvasId: 'share',//canvas 的 id
- fileType: 'jpg',
- success: function(res) {
- wx.saveImageToPhotosAlbum({
- filePath: res.tempFilePath,
- success(res) {
- wx.hideLoading();
- wx.showToast({
- title: '保存成功',
- });
- },
- fail() {
- wx.hideLoading()
- }
- })
- }
- })
5. 如何改变一个当它的类型为数组时的绑定数据里一个数组元素的值
不知道怎么描述, 直接来例子:
page 里面的参与页面渲染的数据 data 中的一个数据, 当它的数据类型是个普通的字符串或者数字, 布尔值的时候, 例如:
- data: {
- select:false
- }
我们要更改它的属性只需要:
- this.setData({
- select:true
- })
而当它的属性是个数组的时候:
- data:{
- select:[{
- 'id':1,
- 'check':false
- },{
- 'id':2,
- 'check':false
- }]
- }
如果我们要改变 select 里面 id 为 2 的 check 为 true:
- var checked = 'select[1].check';
- this.setData({
- [checked]:true
- })
6. 小程序加入数据分析的自定义分析事件
这个例子中, 用一个动作上报 "加入购物车" 事件.
trigger: 触发条件, click, 表示点击操作触发;
action: 触发时动作, 一次性上报, 表示在每一次 click 中, 收集数据并上报一条数据;
page: 触发页面, 填 viewProduct(viewProduct 是商品详情页);
element: 触发元素, 填 .addToCart(.addToCart 是一个 "加入购物车" 的按钮);
data: 事件的数据及其来源, 用 "字段名 字段值" 来表示, 其中字段值是页面上的一个变量.
详细说一下字段值, 他有如下规则:
填写的变量名, 默认从 page 实例的 data 字段中获取
若想收集由 list 变量渲染的列表中的某一项数据, 则可用 list[].x 表示, 这里会根据当前填写的 element(只能是 class) 得到的 NodeList 的第几个来决定数组下标.
若列表是二维的, 则可用 list[]
若想取得数组的下标, 则可用 list[].$INDEX 表示
若想取得 wxml 中 data - 系列属性的值, 则可用 $DATASET. 表示
若想取得 App 实例的数据, 则可用 $App.x 表示, 只支持获取基本类型的数据, 如 number,string,boolean
来源: http://www.qdfuns.com/article/47925/87a01f24b76437e11823342a02697cd9.html