小程序html代码
小程序js代码Page({
data: {
web_src: 'https://cclm.sc108.net/mobile/', // 嵌入的网址
shareObj: '',
share_src: ''
},
onLoad: function (options) {
// 指定分享页面,即分享页,非当前页时
if (options.return_url) {
var web_url = decodeURIComponent(options.return_url);
// 网址中加参数标记是小程序重新载入的
web_url += web_url.indexOf('?') == -1 ? '?' : '&';
web_url += 'platform=miniprogram';
var share_url = decodeURIComponent(options.share_url);
} else {
var web_url = 'https://cclm.sc108.net/mobile/'
var share_url = web_url;
}
this.setData({
web_src: web_url,
share_src: share_url,
});
},
bindGetMsg: function(e) {
console.log(e);
this.data.shareObj = e.detail.data[e.detail.data.length - 1];
},
// 分享
onShareAppMessage(options) {
var that = this
var share_src = that.data.share_src
// 当嵌入网址是重新载入时,更新分享链接为当前网址
if (options.webViewUrl.indexOf('miniprogram') == -1) {
share_src = options.webViewUrl
console.log(123);
}
let shareObj = this.data.shareObj;
shareObj.url = '/pages/index/index?return_url=' +encodeURIComponent(share_src);
console.log(shareObj);
if (shareObj) {
return {
title:shareObj.shareTitle,
desc: shareObj.shareDesc,
path: shareObj.url,
imageUrl: shareObj.shareImage,
success: function(res) {
console.log(res)
}
}
}
},
})
服务器端指定传参
var obj = {
'url':slink //分享链接,好像没效果
'shareDesc': sdesc, //分享描述,好像没效果
'shareImage': simgUrl, //分享图片
'shareTitle': stitle //分享标题
}
wx.miniProgram.postMessage({
data: obj
})
填坑说明
在网找到了很多,但试了都不行,要么缺参数,后面终于搞好了,事实上也是有点蒙B,记录一下
在 index.wxml代码中
绑定了 bindmessage="bindGetMsg" 这个方法,用于分享是触发传参用的,
而参数的来自已于服务器端放的代码 wx.miniProgram.postMessage 返回obj参数
还有一点,需要注意,分享的页面链接,要加上一些字符串和转换如:你的分链接是 share_src ,处理一下
share_src = '/pages/index/index?return_url=' +encodeURIComponent(share_src);
最后还要注意,这块代码,在onload方法中,好像没有执行,不过少了这个代码却不行if (options.return_url) {
var web_url = decodeURIComponent(options.return_url);
// 网址中加参数标记是小程序重新载入的
web_url += web_url.indexOf('?') == -1 ? '?' : '&';
web_url += 'platform=miniprogram';
var share_url = decodeURIComponent(options.share_url);
} else {
var web_url = 'https://cclm.sc108.net/mobile/'
var share_url = web_url;
}
this.setData({
web_src: web_url,
share_src: share_url,
});
}