不同系统下微信 onMenuShareTimeline 调用

在安卓和iOS系统上,微信的onMenuShareTimeline调用出现不同行为。在安卓设备上,商品详情页的分享内容错误地显示为首页的文案,而iOS和微信开发者工具表现正常。通过排查发现,分享函数在不同环境的执行顺序导致了问题。解决方案是在异步环境中补充分享函数,避免全局函数被覆盖。反思中提到,分享函数应按需拆分,避免冲突,并提倡学习Webpack和ES6以实现更好的模块化。
摘要由CSDN通过智能技术生成

问题

一个商城项目,在首页和商品详情页有着不同的分享文案。测试的时候发现安卓系统下商品详情页的分享内容是首页的文案,但是 iOS 系统和微信开发者工具都是正常的…于是开始了排查之路。

首先来看下简化版的代码结构。

// 通用设置 - 全局设定分享信息
window.globalShareDataWx = {
    title: 'test'
}
alert('全局环境');
wx.ready(function(){
   
    alert('ready环境');
    wx.onMenuShareTimeline({
        title: window.globalShareDataWx.title
    })
})

// 商品详情页 - 商品详情页异步获取商品信息后
$.ajax({
    success: function(data) {
   
        alert('异步环境');
        wx.onMenuShareTimeline({
要在Vue H5中调用微信分享,首先需要引入微信官方的JS-SDK库。在Vue项目的index.html文件中,可以在<head>标签内添加如下代码: ```html <script src="https://res.wx.qq.com/open/js/jweixin-1.6.0.js"></script> ``` 然后,在Vue组件的created生命周期钩子函数中,使用Vue的axios或者其他网络请求库向后端请求获取微信配置信息。 ```javascript created() { this.fetchWechatConfig(); }, methods: { async fetchWechatConfig() { const response = await axios.get('/api/wechat/config'); // 向后端请求微信配置信息 const { appId, timestamp, nonceStr, signature } = response.data; // 将配置信息存储到全局变量中 this.$store.commit('setWechatConfig', { appId, timestamp, nonceStr, signature }); this.initWechatSDK(); }, initWechatSDK() { const { appId, timestamp, nonceStr, signature } = this.$store.state.wechatConfig; wx.config({ appId, timestamp, nonceStr, signature, jsApiList: ['onMenuShareTimeline', 'onMenuShareAppMessage'], // 配置需要使用的微信API }); // 进行微信SDK的初始化 wx.ready(() => { this.shareToWechat(); }); }, shareToWechat() { const shareData = { title: '分享标题', link: '分享链接', imgUrl: '分享图片链接', desc: '分享描述', }; // 配置分享的具体内容 wx.onMenuShareTimeline(shareData); // 分享到朋友圈 wx.onMenuShareAppMessage(shareData); // 分享给好友 }, }, ``` 上述代码中,我们通过axios库向后端请求了微信配置信息,并将其存储到Vuex的全局状态中。然后,我们使用微信JS-SDK中的`wx.config`方法进行微信验证和初始化配置。一旦初始化成功,`wx.ready`回调函数将会被触发,我们在该函数中调用`shareToWechat`方法来配置分享的具体内容。 在`shareData`对象中,我们可以自定义分享的标题、链接、图片和描述等信息,然后使用`wx.onMenuShareTimeline`方法配置分享给朋友圈的内容,使用`wx.onMenuShareAppMessage`方法配置分享给好友的内容。 最后,我们可以在Vue组件中调用`shareToWechat`方法来触发微信分享。 注意:在实际开发中,需要根据微信的API文档和后端提供的接口来进行相应的调整和配置。以上代码仅为示例,具体实现方式可能会有所不同
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值