小程序頁面轉(zhuǎn)發(fā)是小程序分享的一個重要方式,在設(shè)計小程序應(yīng)用時就需要考慮那些頁面需要實現(xiàn)轉(zhuǎn)發(fā)功能,以及頁面的轉(zhuǎn)發(fā)參數(shù)。本節(jié)介紹如何進行小程序頁面的分享,并介紹如何獲取小程序卡片的分享票據(jù)。
9.2.1小程序頁面轉(zhuǎn)發(fā)
微信小程序提供了頁面的轉(zhuǎn)發(fā)的功能,用戶在在打開小程序的頁面時,可把該頁面以消息卡片的形式轉(zhuǎn)發(fā)給其他用戶或微信群。微信小程序轉(zhuǎn)發(fā)功能的實現(xiàn)方法有兩種:
- 第一種方式
第一種方式是在page.js中實現(xiàn)onShareAppMessage,便可在小程序右上角顯示分享菜單:
onShareAppMessage: function () {
return {
title: '分享標題',
desc: '分享頁面的內(nèi)容',
path: '/pages/share_recv?code=123'
}
}
- 第二種方式
如果覺得小程序原生的轉(zhuǎn)發(fā)用戶體驗不夠友好,可以在頁面自定義轉(zhuǎn)發(fā)按鈕,通過給 button 組件設(shè)置屬性 open-type=“share”,可以在用戶點擊按鈕后觸發(fā)Page.onShareAppMessage事件,實現(xiàn)分享功能。
<view style="padding:5px">
<button open-type='share'>分享</button>
</view>
- 獲取分享傳遞的參數(shù)
上面的例子中,path屬性指向的是/pages/share_recv頁面,并附帶code=123的參數(shù)。我們只需在share_recv.js的onLoad函數(shù)中,通過options獲取傳遞過來的參數(shù):
Page({
onLoad: function (options) {
console.log(options);
}
})
9.2.2小程序分享票據(jù)
- 小程序分享票據(jù)shareTickets
通常開發(fā)者希望轉(zhuǎn)發(fā)出去的小程序被二次打開的時候能夠獲取到一些信息,例如群的標識。在小程序中調(diào)用wx.showShareMenu并且設(shè)置 withShareTicket為true,當用戶將小程序轉(zhuǎn)發(fā)到微信群之后,此轉(zhuǎn)發(fā)卡片在群聊中被其他用戶打開時,可以在App.onLaunch 或App.onShow獲取到一個shareTicket。通過調(diào)用wx.getShareInfo(shareTicket) 接口可以獲取到轉(zhuǎn)發(fā)信息。
分享前調(diào)用wx.showShareMenu方法,否則不會帶有分享票據(jù):
Page({
onLoad: function (options) {
wx.showShareMenu({
withShareTicket: true
})
},
onShareAppMessage: function () {
return {
title: '分享標題',
desc: '分享頁面的內(nèi)容',
path: '/pages/share_recv?code=123'
}
}
})
- 小程序獲取票據(jù)shareTickets
可以在App的onLaunch和onShow中獲取 shareTicket,由于onLaunch全局只觸發(fā)一次和熱啟動的原因,因此在onShow中獲取 shareTicket比較合理:
App({
onShow: function(opt) {
console.log('app---onShow');
//1044是群聊,1007是私聊
if (opt.scene == 1044) {
wx.getShareInfo({
shareTicket: opt.shareTicket,
success: function(res){
var encryptedData = res.encryptedData;
var iv = res.iv;
console.log(res);
}
})
}
}
)}
res.encryptedData就是分享到的群的相關(guān)信息了,不過這個信息是加密的,需要像獲取手機號一樣再去后端解密才可以,具體解密方法請參見:獲取用戶手機號碼。 encryptedData 解密后為以下的json 結(jié)構(gòu):
{
"openGId": "OPENGID"
}
說明:文章來源:http://www.zghlxwxcb.cn/news/detail-598545.html
- 只有分享到任一群聊,shareTicket才會有值,否則是undefined
- shareTicket也可以用來區(qū)分轉(zhuǎn)發(fā)消息的場景
- shareTicket主要用來獲取轉(zhuǎn)發(fā)詳情,傳入wx.getShareInfo()中獲取加密數(shù)據(jù),需要后端配合,返回解密數(shù)據(jù)。
9.2.3 小程序卡片轉(zhuǎn)發(fā)的調(diào)試
微信小程序開發(fā)者工具可以模擬向微信群轉(zhuǎn)發(fā)小程序卡片,小程序官方提供的9個測試用的群,您可以在開發(fā)者工具中調(diào)試小程序卡片的轉(zhuǎn)發(fā)功能。但是開發(fā)者工具模擬器無法進入測試群,因此也就無法點擊轉(zhuǎn)發(fā)出去的小程序卡片。要想對這種情況進行調(diào)試,需要使用開發(fā)者工具的自定義編譯功能。接下來我們創(chuàng)建一個編譯模式,用于調(diào)試打開帶shareTicket的小程序卡片消息。具體操作步驟如下:
1)點擊開發(fā)者工具的:添加編譯模式,打開編譯模式設(shè)置彈框。
2)為您的編譯模式命名,并設(shè)置小程序的啟動頁面。
3)選擇小程序的進入場景,您需選擇:1044:帶shareTicket的小程序卡片消息。
4)選擇進入的群:小程序官方提供的9個測試用的群,選擇其中的一個。文章來源地址http://www.zghlxwxcb.cn/news/detail-598545.html
到了這里,關(guān)于微信小程序開發(fā)實戰(zhàn)9_2 小程序頁面轉(zhuǎn)發(fā)的文章就介紹完了。如果您還想了解更多內(nèi)容,請在右上角搜索TOY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!