uniapp中使用微信SDK
uniapp的分享不支持h5,所以要在uniapp中使用微信SDK,但总是遇到很多问题,下面一起来探讨一下
首先,先引入微信sdk文件
npm install weixin-js-sdk
记得调用
var wx = require('weixin-js-sdk');
然后进行配置,单页面引入在onLoad或onReady中调用
setShareConfig() {
//对url 进行编码 这里看情况选择
// var localUrl = encodeURIComponent(location.href.split('#')[0]);
var localUrl = location.href.split('#')[0]
//分享的地址,按实际需要写
let currentUrl = 'https://xxxx'
//这里的地址一定要配置过相关权限,否则无效 我用的uview封装的接口,实际用的时候换成自己封装的
this.$u.api.getjsSDKApi({
appId: 'wxd657ebae1b63429d',
url: localUrl
}).then(res => {
// console.log(res.data)
//根据实际接口返回参数填写,这里只是我 的形式
const {
appId,
nonceStr,
signature,
timestamp
} = res.data
//通过微信config接口注入配置
wx.config({
debug: false, //默认为false 为true的时候是调试模式,会打印出日志
appId: appId,
timestamp: timestamp,
nonceStr: nonceStr,
signature: signature,
//这里引入了新旧各两种方式,单独引入新的或旧的没有效果,不知道什么原因
jsApiList: [
'checkJsApi',
'onMenuShareAppMessage',
'onMenuShareTimeline',
'updateAppMessageShareData',
'updateTimelineShareData',
],
});
//配置自定义分享内容
window.share_config = {
share: {
//最好不要包含现金,红包等字眼,有些时候可能会有问题
title: '一起敲代码!', // 这是分享展示卡片的标题
desc: '机会先到先得!', // 这是分享展示的摘要
//要是https的网址,否则失败
link: currentUrl, // 这里是分享的网址
//图片如果是https的网址,测试ios正常,安卓无法显示图片,不知道具体原因,改为http正常,注意不支持相对路径
imgUrl: 'http://tob-h5.runyie.com/agent-reg/static/icon.jpg', // 这里是需要展示的图标
success: function(rr) {
// console.log('成功' + JSON.stringify(rr))
},
cancel: function(tt) {
// console.log('失败' + JSON.stringify(tt));
}
}
};
// config
wx.ready(function() {
// console.log("开始配置")
wx.updateAppMessageShareData(window.share_config.share);
wx.updateTimelineShareData(window.share_config.share);
wx.onMenuShareTimeline(window.share_config.share);
wx.onMenuShareAppMessage(window.share_config.share);
});
wx.error(function(res) {
console.log('wx error :', res)
});
}).catch(err => {
console.log(err);
})
},
一定记得要调用!!!只能在微信中
如果配置失败,可以打开debug查看具体原因,总之,坑还是有的,
也测试过uniapp推荐的jweixin,
但失败了,最后还是用的wx.
新手上路,多多指教!