- 合法域名必须备案,本地测试可选择不效验合法域名,同时在hosts中映射
127.0.0.1 xxxx.com
,然后刷新DNSipconfig /flushdns
- wx.getUserInfo 用户拒绝后不回调fail
- 本地资源无法通过 WXSS 获取
background-image:可以使用网络图片,或者 base64,或者使用标签 - 事件
事件是视图层到逻辑层的通讯方式。
事件可以将用户的行为反馈到逻辑层进行处理。
事件可以绑定在组件上,当达到触发事件,就会执行逻辑层中对应的事件处理函数。
事件对象可以携带额外信息,如 id, dataset, touches。
事件绑定
测试中发现catch:XX触发不如catchXX灵敏。
“`
事件绑定的写法同组件的属性,以 key、value 的形式。key 以bind或catch开头,然后跟上事件的类型,如bindtap、catchtouchstart。
自基础库版本 1.5.0 起,bind和catch后可以紧跟一个冒号,其含义不变,
如bind:tap、catch:touchstart。
value 是一个字符串,需要在对应的 Page 中定义同名的函数。不然当触发事件的时候会报错。bind事件绑定不会阻止冒泡事件向上冒泡,catch事件绑定可以阻止冒泡事件向上冒泡。
“`- dataset
在组件中可以定义数据,这些数据将会通过事件传递给 SERVICE。
书写方式: 以data-开头,多个单词由连字符-链接,不能有大写(大写会自动转成小写)
如data-element-type,最终在 event.currentTarget.dataset 中会将连字符转成驼峰elementType
- app.json 中的
pages
数组中的第一个路径为小程序打开的页面 - 每个页面的json文件可以单独配置页面信息,包括导航栏样式、标题等。app.json中的设置为全局设置,优先级小于页面json。
- 授权
- 如果用户未接受或拒绝过此权限,会弹窗询问用户,用户点击同意后方可调用接口;
- 如果用户已授权,可以直接调用接口;
- 如果用户已拒绝授权,则短期内不会出现弹窗,而是直接进入接口 fail 回调。请开发者兼容用户拒绝授权的场景。
- 页面全局变量可在page之外const声明。
- 播放音频,开发者工具与移动端格式不一样,直接移动端测试就好。
- 音频路径全局变量可访问,data里面访问不到。innerAudioContext音频src需要提前设置,play无参数。
wx.createAudioContext(audioId, this)
升级wx.createInnerAudioContext()
无法绑定audio
组件- wx.saveFile(OBJECT)
- saveFile 会把临时文件移动,因此调用成功后传入的 tempFilePath 将不可用
- 本地文件存储的大小限制为 10M,包括缓存
- wx.openLocation(OBJECT)
- 经纬度参数为Float型,函数默认为字符串
- wx.createMapContext(mapId, this)
- translateMarker 要先设置markers,有具体点才会成功调用
autoRotate与rotate设置后无反应,安卓和开发者工具不旋转- autoRotate设为false,才会触发rotate旋转。设为true时无反应。
- 旋转方向为顺时针。
- getScale 获取的缩放级别跟手机有关,同样的视野范围不同手机获取的级别可能不一样。
- wx.onAccelerometerChange(CALLBACK)
- 调用接口后会自动开始监听
- 若从别的页面进入此页面,放在onReady里面监听的话,返回上一页面,监听不会停止。所以不需要监听时需要在
onUnload
函数里停止监听。
- wx.onNetworkStatusChange(CALLBACK)
- 安卓测试后状态改变会调用三次,原因不明。
- wx.makePhoneCall(OBJECT)
- 安卓会触发
onHide
,跳到电话拨打界面,ios不明。
- 安卓会触发
- wx.onBluetoothAdapterStateChange(CALLBACK)
- 可用状态满足两个条件才会触发
- 蓝牙已成功初始化。
- 蓝牙
available
由false
变为true
状态。
- 是否搜寻状态触发
discovering
由false
变为true
- 可用状态满足两个条件才会触发
- wx.startBluetoothDevicesDiscovery(OBJECT)
- 开始搜寻后触发
onBluetoothAdapterStateChange
,状态discovering
变为true
后,再调用getBluetoothAdapterState
状态discovering
为false
,原因不明。
- 开始搜寻后触发
- wx.setScreenBrightness(OBJECT)
- 设置亮度后仅在小程序内部有效,退出小程序或切换至别的应用,亮度跟系统设置有关,此效果所有小程序共用,即小程序A设置亮度后小程序B也会有同样的效果。
- getScreenBrightness
接口若安卓系统设置中开启了自动调节亮度功能,则屏幕亮度会根据光线自动调整,该接口仅能获取自动调节亮度之前的值,而非实时的亮度值
。测试发现屏幕亮度不受自动调节亮度影响。
- wx.startWifi(OBJECT)
- 安卓显示调用成功,实际上未能打开wifi。stopWifi也一样。
- Canvas
- 所有在
<canvas/>
中的画图必须用 JavaScript 完成:
- 所有在
- wx.request
- POST提交时需要设置
header: { 'content-type': 'application/x-www-form-urlencoded' },
,默认为json后台容易获取不到值。
- POST提交时需要设置
- openid具有唯一性,但在同一个开发者的小程序与公众号及其他平台的openid不一致。无法判断是否为同一用户。unionid则在同一开发者的所有平台都具有唯一性。
比如,某开发者同时拥有公众号A与小程序B,用户在A的openid为O1,而在B的openid则为O2,无法判断二者为同一用户。
unionId同样具有唯一性,区别在于用户在A、B的unionid都一致,可以用来判断用户唯一性。unionid属于敏感信息,需要解密后才能获得。 - 微信用户信息解密。(待补充)
- 获取小程序二维码
- 只有发布的小程序才能成功生成二维码,未发布的小程序只能通过分享小程序。
- 生成二维码时可以传递自定义scene值,用户扫描分享的二维码后可在onload事件中获取场景值,实现获取扫码来源。
- 二维码次数有限制,
- 接口B 无path,有page。此参数必须是已经发布的小程序存在的页面(否则报错),根路径前不要填加’/’,不能携带参数(参数请放在scene字段里),默认跳主页面
小程序深坑
猜你喜欢
转载自blog.csdn.net/vadonmo/article/details/79666973
今日推荐
周排行