<div class="open_app">
<wx-open-launch-app
id="launch-btn"
@error="handleError"
@launch="handleLaunch"
:extinfo="dataStr"
appid="wxb0877bc6bXXXXXXXX"
>
<script type="text/wxtag-template">
<button class="btn" style="border: none">App唤起</button>
</script>
</wx-open-launch-app>
</div>
created() {
this.wechatInit()
},
methods: {
/**
* @description: 打开错误
* @param {*}
* @return {*}
*/
handleError() {
jump()
},
/**
* @description: 打开成功
* @param {*}
* @return {*}
*/
handleLaunch() {
alert('打开成功')
},
/**
* @description: 接口获取开放标签需要的参数
* @param {*}
* @return {*}
*/
wechatInit() {
axios({
method: 'get',
// url: '/getAccessToken',
url: 'https://XXXXXXX',
params: {
url: encodeURIComponent(window.location.href.split('#')[0])
},
headers: {
Authorization:
'XXXXXXX'
}
}).then((res) => {
if (res.data) {
const data = res.data.data
wx.config({
debug: true, // 开启调试模式,调用的所有api的返回值会在客户端alert出来,若要查看传入的参数,可以在pc端打开,参数信息会通过log打出,仅在pc端时才会打印
appId: 'wxb0877bc6bXXXXXXXX', // 必填,公众号的唯一标识
timestamp: data.timestamp, // 必填,生成签名的时间戳
nonceStr: data.nonceStr, // 必填,生成签名的随机串
signature: data.signature, // 必填,签名
jsApiList: ['onMenuShareAppMessage', 'onMenuShareTimeline'], // 必填,需要使用的JS接口列表
openTagList: ['wx-open-launch-app'] // 可选,需要使用的开放标签列表,例如['wx-open-launch-app']
})
wx.ready(function () {
// config信息验证后会执行ready方法,所有接口调用都必须在config接口获得结果之后,config是一个客户端的异步操作,所以如果需要在页面加载时就调用相关接口,则须把相关接口放在ready函数中调用来确保正确执行。对于用户触发时才调用的接口,则可以直接调用,不需要放在ready函数中。
console.log('hello')
})
} else {
console.log('获取微信签名失败')
}
})
wx.error(function (res) {
// config信息验证失败会执行error函数,如签名过期导致验证失败,具体错误信息可以打开config的debug模式查看,也可以在返回的res参数中查看,对于SPA可以在这里更新签名。
console.log(res, 'err')
})
}
}
弹窗跳出来config:ok; 但页面压根不显示按钮,然后把<script type="text/wxtag-template">改成<template>就显示按钮了,但点击无响应了。
域名要配置好才行,传到线上看看,如果还没有,那就再外面包一层view