vue中调用微信js-sdk自定义分享

当项目运行在微信浏览器时,会遇到分享的需求,下面是我实现微信分享时遇到的一些坑,需要注意:原有的 wx.onMenuShareTimeline、wx.onMenuShareAppMessage、wx.onMenuShareQQ、wx.onMenuShareQZone 接口,即将废弃。请尽快迁移使用客户端6.7.2及JSSDK 1.4.0以上版本支持的 wx.updateAppMessageShareData、updateTimelineShareData 接口。

一、配置
登录微信公众号配置js安全域名,分享权限等等。

二、安装:

npm i weixin-js-sdk --save

三、使用
1、从服务器获取signature签名:
这里注意由于项目是采用hash模式,地址需要处理一下location.href.split(’#’)[0]
在这里插入图片描述
2、wx.config配置:
如果需要调试,开启debug即可
在这里插入图片描述
3、wx.ready注册:
link必须是配置的安全域名,域保持一致
在这里插入图片描述
4、页面引入:
在首页调用一次即可
在这里插入图片描述

import { initWx } from ‘…/weixin’;

let obj = {
	title:this.homeList.share.shareTitle,
    link:this.homeList.share.shareLink,
    imgUrl:this.homeList.share.shareIcon,
    desc:this.homeList.share.shareDescription,
}
initWx(obj)

至此,基本的分享功能已经注册完毕,但是测试发现ios生效,android并不生效,最后反复调试,解决了这个坑,暂未发现是什么原因,可能是微信的坑。

解决方式:
jsApiList里加入’onMenuShareAppMessage’与’onMenuShareTimeline’即可。不配置wx.onMenuShareTimeline (); wx.onMenuShareAppMessage (); 也可以。
在这里插入图片描述
再次测试,发现android可以了,解决了这个坑。
在这里插入图片描述
四、链接:
微信JS-SDK说明文档:https://mp.weixin.qq.com/wiki?t=resource/res_main&id=mp1421141115

要在 Vue 中使用微信 JS-SDK 实现分享功能,需要完成以下步骤: 1. 获取微信公众号的 appid 和 appsecret,以及当前页面的 url。 2. 在服务器端配置好微信 JS-SDK 的权限验证,获取到 signature、timestamp 和 noncestr 等参数。 3.Vue 中引入微信 JS-SDKSDK 文件,并初始化。 4. 调用微信 JS-SDK 的接口,完成分享功能。 下面是一个简单的示例代码: ```html <template> <div class="share"> <button @click="shareToWechat">分享微信</button> </div> </template> <script> import wx from 'weixin-js-sdk' export default { data() { return { appId: '', timestamp: '', nonceStr: '', signature: '', imgUrl: '', shareUrl: '' } }, created() { // 获取微信 JS-SDK 配置参数 this.getWechatConfig() }, methods: { // 获取微信 JS-SDK 配置参数 async getWechatConfig() { const url = window.location.href.split('#')[0] const res = await this.$api.getWechatConfig({ url }) if (res.code === 0) { const data = res.data this.appId = data.appId this.timestamp = data.timestamp this.nonceStr = data.nonceStr this.signature = data.signature this.imgUrl = data.imgUrl this.shareUrl = data.shareUrl this.initWechatSDK() } }, // 初始化微信 SDK initWechatSDK() { wx.config({ debug: false, appId: this.appId, timestamp: this.timestamp, nonceStr: this.nonceStr, signature: this.signature, jsApiList: [ 'updateAppMessageShareData', 'updateTimelineShareData' ] }) wx.ready(() => { // 配置分享信息 wx.updateAppMessageShareData({ title: '分享标题', desc: '分享描述', link: this.shareUrl, imgUrl: this.imgUrl, success() { // 分享成功回调 } }) wx.updateTimelineShareData({ title: '分享标题', link: this.shareUrl, imgUrl: this.imgUrl, success() { // 分享成功回调 } }) }) }, // 分享微信 shareToWechat() { wx.chooseWXPay({ // ... }) } } } </script> ``` 在上面的代码中,我们首先通过 `getWechatConfig` 方法获取微信 JS-SDK 的配置参数,然后在 `initWechatSDK` 方法中初始化微信 SDK,并配置分享信息。最后,在 `shareToWechat` 方法中调用微信 JS-SDK 的 `chooseWXPay` 接口,实现分享功能。
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

前端小小白zyw

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值