uniapp vue3 通过点击分享按钮发送给微信好友 并且携带参数
时间: 2024-10-07 17:01:30 浏览: 85
在UniApp中使用Vue3开发时,如果你想要添加分享功能,比如将内容分享到微信好友,可以借助微信的JS-SDK。首先,你需要在uni-app项目的`index.html`文件中引入微信的JSSDK,并在Vue组件中注册这个API。
1. **引入JSSDK**: 在`index.html`头部添加微信的JS安全域名白名单,例如:
```html
<meta property="og:url" content="https://yourdomain.com">
<meta property="og:title" content="Your App Title">
<meta name="tencent-weixin" content="true">
```
2. **注册WeChat JS-SDK**: 在Vue组件的`mounted`生命周期钩子中注册分享接口:
```javascript
import { wxShareApi } from '@/utils/wxShare.js'; // 假设你有一个wxShare.js文件用于管理微信分享
export default {
mounted() {
if (this.$store.state.isWxEnvironment) {
wxShareApi.init({
debug: false, // 是否启用调试模式,默认关闭
appId: 'your.wx.app.id', // 获取微信公众号或小程序的APPID
timestamp: '', // 当前时间戳
nonceStr: '', // 随机字符串,可通过`uni.create_nonce_str()`生成
signature: '', // 签名,通过调用微信的`getSignPackage`函数获取
jsApiList: ['onMenuShareTimeline', 'onMenuShareAppMessage'], // 需要使用的接口列表
}).then(() => {
console.log('WeChat Share SDK initialized successfully');
});
}
},
methods: {
shareToFriend(content, url, params = {}) {
const data = {
title: content, // 分享标题
link: url, // 分享链接
imgUrl: '', // 分享图标,如果没有则默认为应用图标
success: function () {
console.log('分享成功');
},
fail: function (res) {
console.error('分享失败:', res);
},
};
// 调用微信的分享方法,携带自定义参数
wx.onMenuShareAppMessage(Object.assign(data, { desc: content, ...params }));
},
},
};
```
在这个例子中,`shareToFriend`方法接收内容、链接以及自定义参数,并将它们组合成分享消息。你可以根据需要设置`params`对象,如带上额外的信息传递给微信好友。
**注意事项:**
- `signature`、`timestamp`和`nonceStr`需要在用户点击分享之前动态获取。
- 在实际项目中,`isWxEnvironment`应该判断是否是在微信环境中运行,避免在非微信环境触发错误。
阅读全文