【Vue功能】weixin-js-sdk实现vue分享功能

weixin-js-sdk实现vue分享功能

h5链接分享到微信好友、朋友圈的链接卡片内容可以自定义
安装微信sdk

cnpm install weixin-js-sdk -S

使用
新建文件:plugins/wechat.js

import wx from 'weixin-js-sdk'
import axios from 'axios'
let config = {
	debug: false, // 查看初始化结果,成功与否
	appId: "", //公众号的APPID
	nonceStr: "", // 生成签名的随机字符串
	timestamp: 0, // 生成签名的时间戳
	signature: "", // :微信生成的签名
	jsApiList: ["updateAppMessageShareData",'choosehXPay ','miniprogram.navigateTo',"invokeMiniprogramAPI"] // 必填,需要使用的JS接口列表,需要在项目当中使用的那些方法,比如说支付chooseWXPay,直接把方法写进jsApiList里面既可
}
export default {
	init() {
		axios({
			method: "POST",
			// url:注意,每次url变化之后都需要重新微信jssdk授权,虽然每次授权url除去#后都是一样的,但是必须这么做,微信的机制
			url: process.env.VUE_APP_GUIGUI_API_HOST + "/api/wechat/getHmcSDKConfig",
		}).then(res => {
			let configData = res.data.data
			if (configData) {
				config.appId = configData.appId
				config.nonceStr = configData.nonceStr
				config.timestamp = configData.timestamp
				config.signature = configData.signature
			}
			wx.config(config)
		})
	},
	setWechatShareInfo(link, title, desc, imgUrl, callBack) {
		wx.ready(function () { //需在用户可能点击分享按钮前就先调用
			wx.updateAppMessageShareData({
				title: title || '', // 分享标题
				desc: desc || '', // 分享描述
				link: link || '', // 分享链接,该链接域名或路径必须与当前页面对应的公众号JS安全域名一致
				imgUrl: imgUrl || '', // 分享图标
				success: function () {
					callBack()
				}
			})
		})
	}

}

页面使用
注意:使用微信自定义分享功能的时候,当分享链接中存在中文的时候,要进行encodeURIComponent(),
原因:在安卓手机上能成功自定义分享,ios手机上则不能成功分享,安卓手机会自动encodeURIComponent,而IOS不会。

			handleShareWechat() {
				import('@/plugins/wechat.js').then(mod => {
					let wx = mod.default
					wx.init()
					wx.setWechatShareInfo(location.href, '分享标题', '分享描述')
				})
			},
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Vue3 + TypeScript项目中使用weixin-js-sdk,你需要执行以下步骤: 1. 安装weixin-js-sdk ``` npm install weixin-js-sdk ``` 2. 在组件中引入weixin-js-sdk ``` import wx from 'weixin-js-sdk'; ``` 3. 在组件mounted钩子函数中初始化JS-SDK ``` mounted() { this.initJSSDK(); } ``` 4. 编写初始化JS-SDK的方法 ``` async initJSSDK() { const res = await this.$http.get('/api/signature'); wx.config({ debug: false, appId: res.data.appId, timestamp: res.data.timestamp, nonceStr: res.data.nonceStr, signature: res.data.signature, jsApiList: ['chooseImage', 'uploadImage'] }); } ``` 上面的代码中,我们从后端获取了一个签名,然后使用wx.config方法进行JS-SDK的初始化。其中,debug表示是否开启调试模式,appId、timestamp、nonceStr、signature是签名相关的参数,jsApiList是需要使用的微信JS接口列表。 5. 在需要使用微信JS接口的地方调用相应的方法 ``` async chooseImage() { const res = await this.$http.get('/api/upload'); wx.chooseImage({ count: 1, sizeType: ['original', 'compressed'], sourceType: ['album', 'camera'], success (res) { const localIds = res.localIds; // 上传到服务器 wx.uploadImage({ localId: localIds[0], isShowProgressTips: 1, success: function (res) { const serverId = res.serverId; // 返回图片的服务器端ID // 将serverId发送到服务器进行保存等操作 } }); } }); } ``` 上面的代码中,我们在chooseImage的成功回调函数中,获取到了选择的图片的本地ID,然后使用wx.uploadImage方法将图片上传到服务器。在上传成功的回调函数中,我们可以获取到图片的serverId,然后将serverId发送到服务器进行保存等操作。 以上就是在Vue3 + TypeScript项目中使用weixin-js-sdk的步骤。需要注意的是,我们需要从后端获取签名等参数才能进行JS-SDK的初始化,因此需要与后端进行配合。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值