WeixinJSBridge
微信浏览器内置方法,可直接调用,但无官方文档,无法保证可用。
document.addEventListener("WeixinJSBridgeReady", function () {
WeixinJSBridge.call("closeWindow");//关闭网页
WeixinJSBridge.call('hideOptionMenu'); // 同JSSDK中的wx.hideAllNonBaseMenuItem()
})
注意,浏览器通常不支持自动播放音频或非静音视频,需要有用户动作后才能播放。但在WeixinJSBridgeReady
回调中可以直接播放。
JSSDK
第三方平台和普通公众号调用略有不同,详情见文档
注意,参数中的timestamp
只有10位
在Vue中使用
- npm install weixin-js-sdk --save
- 在 main.js 或 App.vue 中
- 注意url为
encodeURI(location.href.split('#')[0])
,只需要#之前的内容,且必须encodeURI处理。
使用vue-router的hash模式只需要config一次(安卓待确认,因老版本使用浏览器自带回退后需要重新config),而使用history模式则需要每个页面都config
import wx from 'weixin-js-sdk';
https.fetchGet('/WeixinJSSDK/GetWeishopJsViewModel', {
tenantId: 5056,
memberId: memberId,
url: encodeURI(location.href.split('#')[0])
}, 'G').then((data) => {
wx.config({
debug: true, // 开启调试模式,调用的所有api的返回值会在客户端alert出来,若要查看传入的参数,可以在pc端打开,参数信息会通过log打出,仅在pc端时才会打印。
appId: data.appId, // 必填,公众号的唯一标识
timestamp: data.timestamp, // 必填,生成签名的时间戳
nonceStr: data.nonceStr, // 必填,生成签名的随机串
signature: data.signature,// 必填,签名
jsApiList: ['onMenuShareTimeline', 'onMenuShareAppMessage', 'chooseImage', 'uploadImage'] // 必填,需要使用的JS接口列表
});
wx.ready(function () {
console.log('wx.config')
})
}).catch(err => {
console.log(err)
})
一些注意点
- 新版的分享好友/朋友圈接口
updateAppMessageShareData
、updateTimelineShareData
不支持分享后的回调,且仅通过图文/公众号菜单/扫码等方式进入的页面才可以正常分享图文链接,如直接通过聊天记录的网址进入,则分享后只是单纯的link
配置的一个url