一、wx.openLocation兼容
1、申请腾讯地图key
2、配置LBS SDK,选择SDK最新版本
3、调用接口,name和address必须输入,不然要报错
uni.openLocation({
latitude: Number(this.info.latitude),
longitude: Number(this.info.longitude),
name:this.info.meterAddress ? this.info.meterAddress : '--',
address:this.info.meterAddress ? this.info.meterAddress : '--',
success: (e) => {
console.log("openLocation-成功",e)
},
fail: (e) => {
console.log("openLocation-失败",e)
},
二、wx.getSystemInfoAsync兼容
同步获取数据为undefined,异步使用wx.getSystemInfo可以调通,
解决办法:因为我们使用uni-app开发的,所有要使用uni.getSystemInfoAsync,否则获取为undefined
三、不能用腾讯选择插件,目前不支持,改为wx.chooseLocation 功能基本一致,目前android测试没有问题,ios有点问题,报错,目前腾讯开发人员正在解决
ios SDK 1.3.17 版本已更新
四、最好不要用移动助手测试,因为有些会报错,比如:openLocation:not supported 在真机上运行就没有问题
五、开发版的APP如果需要微信开放能力(微信登录)需要调起微信小程序开发版,开发版不能真机运行,否则会报错:remote debug not started.需要点击开发工具上的预览功能
六、运行app,微信小程序授权后,直接到微信小程序了,没有回到APP页面,选择的SDK版本问题,目前1.3.11以上有问题,选择1.3.10就可以了,等待他们后期更新SDK,已更新
七、升级多端项目后,如何取消升级?
把项目里的project.miniapp.json文件删掉以及将project.config.json文件里的"projectArchitecture": "multiPlatform"删掉即可。
八、微信公开技术课[成都站]讲解PPT
九、页面不存在
这就是你当前访问的小程序版本中尚不存在的「小程序授权页」,而你访问的小程序版本是由authorizeMiniprogramType控制的
也就是说,在你修了authorizeMiniprogramType之后,你需要切回小程序模式下进行发版,而不是说你已有小程序对应的版本就可以了!!!
举个例子,你把authorizeMiniprogramType改成了 0 (正式版),那么你的小程序需要重新发布新的版本,而不是说你原本小程序就有线上版本就可以了!!!
十、小程序的登录态管理
- 如果系统登录态不存在,则 wx.getMiniProgramCode 会唤起微信小程序,用户登录成功后,返回 小程序
code。(注:多端基础库会自动生成并维护系统登录态,30 天内有效) - 如果系统登录态存在,则 wx.getMiniProgramCode 会立刻返回 小程序 code
十一、获取微信用户头像和用户昵称
不支持,需要后端去获取
十二、IOS 上 扫一扫无效
十三、报错miniapp/android/i18nInfo.json not found, please upgrade wechatdevtools to the latest version or unset i18nFilePath in project.miniapp.json
重新浏览选择i18n文件夹,没有国际化,直接删掉此参数
十四、wx.chooseImage 只能选择图片,不能拍照
解决方案:更改为wx.chooseMedia API
十五、uni-app 条件编译
由于uni-app与多端的条件编译写法冲突,所以在uni-app里面不能用多端的条件编译,只能单独处理
十六、苹果手机H5网页 JSON.parse 解析含有%号的数据时报错
解决方案:转一下编码,在JSON.parse
let decodedString = decodeURIComponent(this.$route.query.deviceData);
this.deviceData = JSON.parse(decodedString);