好記星不如爛筆頭筹陵,寫一寫記錄下刽锤。
一. 用到的API
轉(zhuǎn)發(fā)功能API參考微信官方镊尺,列下常用的
onShareAppMessage(options)
在返回值中設(shè)置轉(zhuǎn)發(fā)的title與頁面path朦佩,會(huì)回調(diào)轉(zhuǎn)發(fā)成功與失敗,js中設(shè)置了這個(gè)膠囊按鍵中才會(huì)出現(xiàn)“轉(zhuǎn)發(fā)”
wx.hideShareMenu(OBJECT)
隱藏膠囊按鍵里面的“轉(zhuǎn)發(fā)”按鈕
wx.showShareMenu(OBJECT)
1.顯示膠囊按鍵里的“轉(zhuǎn)發(fā)”按鈕 2.設(shè)置是否使用帶shareTicket 的轉(zhuǎn)發(fā)(轉(zhuǎn)發(fā)到微信群)
wx.getShareInfo(OBJECT)
拿shareTicket 獲取微信群的信息
二. 實(shí)現(xiàn)步驟
- 轉(zhuǎn)發(fā)分為頁面內(nèi)button(只能是button)或右上角膠囊按鍵轉(zhuǎn)發(fā)庐氮。后者只要添加了前面提到的第一個(gè)方法就可以了语稠。而頁面內(nèi)轉(zhuǎn)發(fā)要在wxml里這么加(不需要bindtap,點(diǎn)擊button會(huì)觸發(fā)
onShareAppMessage(options)
方法
<button class="btnShare" open-type="share"</button>
- 在頁面
onShareAppMessage(options)
方法調(diào)用前添加
wx.showShareMenu({
withShareTicket: true
})
withShareTicket參數(shù)是設(shè)置轉(zhuǎn)發(fā)是否攜帶shareTicket弄砍。該參數(shù)只有在轉(zhuǎn)發(fā)至群組時(shí)可以獲取到仙畦,轉(zhuǎn)發(fā)至單聊時(shí)無法獲取到shareTicket,有啥用后面說音婶。
- 無論點(diǎn)擊哪種轉(zhuǎn)發(fā)按鍵都會(huì)觸發(fā)
onShareAppMessage: function (option)
慨畸,其中參數(shù)option.from
可以區(qū)別是頁面定義button轉(zhuǎn)發(fā)還是膠囊按鍵轉(zhuǎn)發(fā)
onShareAppMessage: function (option) {
var shareTitle;
if (option.from === 'button') {
// 來自頁面內(nèi)轉(zhuǎn)發(fā)按鈕
shareTitle = '這是來自button的轉(zhuǎn)發(fā)';
}else {
shareTitle = '這是來自膠囊按鍵的轉(zhuǎn)發(fā)';
}
return {
title: shareTitle,
path: '/parts/xxx',
success: function(res) {
res.shareTickets
},
fail: function(res) {
console.log(res)
}
}
}
在后面的return中設(shè)置好title,path衣式,轉(zhuǎn)發(fā)成功或失敗會(huì)回調(diào)相應(yīng)block
- 開發(fā)者將shareTicket傳入到
wx.getShareInfo(OBJECT)
方法中可以獲取到加密數(shù)據(jù)寸士,解密后群組信息(openGId),然后通過gid與開放組件open-data可以讓小程序在微信群中增加不一樣的玩法碴卧。shareTicket有兩種獲取方式弱卡。
(1)用戶轉(zhuǎn)發(fā)成功后的block參數(shù)(見上面代碼)。
(2)用戶收到轉(zhuǎn)發(fā)卡片啟動(dòng)小程序的onLaunch: function(options)或onShow: function(options)
方法(見下面代碼)住册。
onLaunch: function(opt) {
//1044轉(zhuǎn)發(fā)場(chǎng)景值
if (opt.scene == 1044) {
wx.getShareInfo({
shareTicket: opt.shareTicket;
success: function(res){
var encryptedData = res.encryptedData;
var iv = res.iv;
}
})
}
其中success塊返回值即為加密數(shù)據(jù)婶博。解密算法見微信官方
三. 總結(jié)
需求并沒有增加群組玩法,并沒有過多關(guān)注openGid荧飞,后面有機(jī)會(huì)可以試一試,用戶點(diǎn)擊卡片啟動(dòng)小程序時(shí)凡人,由于只是分享一個(gè)頁面,導(dǎo)航層級(jí)會(huì)發(fā)生變化叹阔,若不需要獲取shareTicket則可以做一些其他判斷挠轴。