遇到的問(wèn)題
由于整個(gè)小程序都是用web-view嵌入的,這個(gè)時(shí)候,如果單純的進(jìn)行頁(yè)面分享,只會(huì)導(dǎo)致不管在web-view的哪個(gè)頁(yè)面進(jìn)行分享,都會(huì)在點(diǎn)擊后進(jìn)入首頁(yè)。
解決思路
首先是開(kāi)啟小程序的頁(yè)面分享功能
wx.showShareMenu({
withShareTicket: true, // 該參數(shù)在做分享到群內(nèi)的統(tǒng)計(jì)的時(shí)候可以用到,單獨(dú)分享給某個(gè)人是undefined,在小程序的load或者show的回調(diào)中可以拿到這個(gè)值
})
然后在onShareAppMessage中包裝一下分享的信息,該回調(diào)是在點(diǎn)擊右上角的分享之后,但是信息還沒(méi)有發(fā)出去之前進(jìn)行的一次回調(diào),傳入了一個(gè)包含from,dataset以及webViewUrl三個(gè)參數(shù)的對(duì)象。它的返回值就是對(duì)應(yīng)的分享信息,這個(gè)時(shí)候我們拿到了對(duì)應(yīng)的webview里面的url之后就可以做一些自己需要的操作了。文章來(lái)源:http://www.zghlxwxcb.cn/news/detail-762367.html
onShareAppMessage(options) {
console.log(options);
const { webViewUrl } = options;
const i = webViewUrl.indexOf('?');
let search = '',
url = webViewUrl;
if(i !== -1) {
url = webViewUrl.slice(0, i);
search = `${webViewUrl.slice(i + 1)}`;
}
const shareObj = {
title: "分享的標(biāo)題", // 默認(rèn)是小程序的名稱(可以寫slogan等)
path: `/pages/index?url=${url}${search ? '&' : ''}${search}`, // 默認(rèn)是當(dāng)前頁(yè)面,必須是以‘/’開(kāi)頭的完整路徑,通過(guò)拼接的方式,把需要分享的web-view的url以及參數(shù)拼接進(jìn)去,然后在該`web-view`的頁(yè)面中去做參數(shù)判斷,一旦傳入了對(duì)應(yīng)的url和參數(shù),就進(jìn)入對(duì)應(yīng)的url并攜帶對(duì)應(yīng)的參數(shù)
// imageUrl: '', //自定義圖片路徑,可以是本地文件路徑、代碼包文件路徑或者網(wǎng)絡(luò)圖片路徑,支持PNG及JPG,不傳入 imageUrl 則使用默認(rèn)截圖。顯示圖片長(zhǎng)寬比是 5:4
success: function (res) {
// 轉(zhuǎn)發(fā)成功之后的回調(diào)
if (res.errMsg == 'shareAppMessage:ok') {
}
},
fail: function () {
// 轉(zhuǎn)發(fā)失敗之后的回調(diào)
if (res.errMsg == 'shareAppMessage:fail cancel') {
// 用戶取消轉(zhuǎn)發(fā)
} else if (res.errMsg == 'shareAppMessage:fail') {
// 轉(zhuǎn)發(fā)失敗,其中 detail message 為詳細(xì)失敗信息
}
},
complete: function () {
// 轉(zhuǎn)發(fā)結(jié)束之后的回調(diào)(轉(zhuǎn)發(fā)成不成功都會(huì)執(zhí)行)
}
}
// 來(lái)自頁(yè)面內(nèi)的按鈕的轉(zhuǎn)發(fā)
if (options.from == 'button') {
var data= options.target.dataset;
console.log(data.name); // shareBtn
// 此處可以修改 shareObj 中的內(nèi)容
// shareObj.path = '/pages/index' + data.name;
}
// 返回shareObj
return shareObj;
}
還存在的問(wèn)題
這樣分享之后,進(jìn)入之后確實(shí)能夠進(jìn)入到對(duì)應(yīng)的url中,但是會(huì)出現(xiàn)無(wú)法回退到小程序首頁(yè)的問(wèn)題。由于整個(gè)小程序只有一個(gè)web-view,導(dǎo)致了所有頁(yè)面的切換都是在一個(gè)原生頁(yè)面下進(jìn)行的,所以如果需要進(jìn)行回退,最好是新增一個(gè)web-view的頁(yè)面,用到專門處理分享的鏈接。文章來(lái)源地址http://www.zghlxwxcb.cn/news/detail-762367.html
到了這里,關(guān)于小程序之web-view中的頁(yè)面分享的文章就介紹完了。如果您還想了解更多內(nèi)容,請(qǐng)?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!