wx-open-launch-app 模拟器正常,真机报错 [WXTAG][JSCORE]
微信网页开发的 wx-open-launch-app # 复现链接: wx.config 开启 debug: http://www.266.com/test/index.html?name=%E6%B7%B1%E5%9C%B3%E5%88%98%E8%AF%97%E8%AF%97%E6%9C%AC%E8%AF%97&matchName=%E6%96%97%E5%9C%B0%E4%B8%BB%E7%BB%BF%E8%B1%86%E6%88%98%E8%B1%86%E8%B5%9B%EF%BC%883%E5%85%B3%EF%BC%89&mung=0&img=http://266-cdn-cn-static.17c.cn/c8ce123336a33c68107b03feefbe9d70.jpg&win=0&debug=1#/ wx.config 未开启 debug: http://www.266.com/match-result/index.html?name=%E6%B7%B1%E5%9C%B3%E5%88%98%E8%AF%97%E8%AF%97%E6%9C%AC%E8%AF%97&matchName=%E6%96%97%E5%9C%B0%E4%B8%BB%E7%BB%BF%E8%B1%86%E6%88%98%E8%B1%86%E8%B5%9B%EF%BC%883%E5%85%B3%EF%BC%89&mung=0&img=http://266-cdn-cn-static.17c.cn/c8ce123336a33c68107b03feefbe9d70.jpg&win=0&debug=1 # 复现步骤: 打开页面点击底部的下载按钮# 期望 在不需要开启 debug 模式下,点击按钮后,如未安装应用出现提示,安装了则拉起app # 实际表现 真机中,IOS 和 安卓均出现(具体是 IPhone X 和 安卓7,8) `wx.config`未开启 debug的链接,打开底部绿色的控制台,出现错误,并且未执行按钮的 ready 回调(看代码 log 内容)。错误截图如下:[图片] `wx.config`开启 debug的链接,打开底部绿色的控制台,未出现错误,执行了按钮的 ready 回调(看代码 log 内容)。点击下载按钮表现正常。在模拟器中 不管开不开 debug,表现都正常。 // 版本信息
// vue 2.x 示例代码;
// jssdk 1.6.0 http://res.wx.qq.com/open/js/jweixin-1.6.0.js、/
export default Vue.extend({
data() {
return {
isWexin: navigator.userAgent.toLowerCase().includes('micromessenger'),
// extinfo, appid 等其它参数
}
},
mounted() {
this.init()
},
methods: {
async init() {
// 接口获取 ticket 等认证参数 ...
wx.config({
// debug: true, // 开启调试模式,调用的所有api的返回值会在客户端alert出来,若要查看传入的参数,可以在pc端打开,参数信息会通过log打出,仅在pc端时才会打印
appId: this.wxPublicAppid, // 必填,公众号的唯一标识
timestamp, // 必填,生成签名的时间戳
nonceStr, // 必填,生成签名的随机串
signature, // 必填,签名
jsApiList: ['onMenuShareAppMessage'], // 必填,需要使用的JS接口列表
openTagList: this.openTagList // 可选,需要使用的开放标签列表,例如['wx-open-launch-app']
})
// eslint-disable-next-line
wx.ready(() => {
const btn = document.getElementById('btn')
console.log('ready?', this.openTagList, btn)
if (btn) {
btn.addEventListener('ready', function (e) {
console.log('btn ready') // 未开启 debug 时,真机不会打印;开启则正常打印
})
btn.addEventListener('launch', function (e) {
console.log('launch')
})
btn.addEventListener('error', (e: any) => {
console.log('error', e.detail)
this.openFail = true
})
}
})
}
}
})