官方文檔html
最近在調研小程序的分享能力,本篇文檔主要是調研小程序關於分享方面的玩法,目的是學習小程序在項目應用以及玩法鏈上的擴展。canvas
小程序若是想對外分享,必須在page
裏面定義onShareAppMessage
函數,來配置頁面分享轉發相關的信息。小程序
一個頁面可能會有多個分享,能夠由插入的參數options來判斷具體是由哪一個位置進行分享,從而作不一樣的邏輯判斷。api
return對象的返回函數:數組
若是定義了該事件,又不想經過頁面menu轉發,能夠經過hideShareMenu來隱藏掉
bash
注意事項:服務器
通常是用來配置相關的參數,常見的如withShareTicket
,用它來獲取羣信息,羣的相關標示。微信
wx.showShareMenu({
withShareTicket: true
})
複製代碼
隱藏menu級別的轉發功能,可是button中還存在着轉發。app
若是先設置 showShareMenu ,而且配置了 withShareTicket,再用 hideShareMenu 方法,經過按鈕轉發,照樣能獲取 shareTicket,以下:ide
wx.showShareMenu({
withShareTicket: true
})
wx.hideShareMenu({
})
複製代碼
更新shareMenu信息須要用update操做哦,這裏須要注意下,通常都是會更新withShareTicket
屬性。
在拿到了shareTicket信息後,能夠由此API獲取轉發詳細信息
wx.getShareInfo({
shareTicket: res.shareTickets[0],
success: ...
fail: ...
})
複製代碼
相關回調的參數
{
errMsg: "getShareInfo:ok",
iv: "gRHeFU+Nhr36RmladCXnRQ==",
encryptedData: "IQ/RwZLeQFUGuxv0bBfOrL/KLnXO+bxcyCBru5lB92FkHIg8ae…7TnHwU+rqgerFKvpvS5JbFyh+9liUqyb2bk6/LETYQ+h/FQ=="
}
複製代碼
由iv和encryptedData進行解密,能夠拿到openGId的值。爲當前羣對當前小程序的惟一值。額外還能夠拿到羣名稱等更多的開放數據。
頁面內須要轉發時,須要給button
組件設置open-type="share"
,並在觸發的地方判斷來源。
在小程序中,獲取openGId主要有兩種途徑,也通常圍繞着兩種途徑作分享相關的開發:
withShareTicket
的卡片時,能夠在onLauch或者getShareInfo
中獲取加密信息,而且傳給服務端得到openGId。shareTicket
,而後經過getShareInfo
來得到加密信息,得到openGId。傳統APP要以小程序卡片的形式分享到微信,須要知足如下幾個條件:
要求發起分享的App與小程序屬於同一微信開放平臺賬號;
支持分享小程序類型消息至好友會話,不支持「分享至朋友圈」 「收藏」;
微信客戶端版本要求:6.5.6及以上微信客戶端版本,若客戶端版本低於6.5.6,小程序類型分享將自動轉成網頁類型分享。開發者必須填寫網頁連接字段,確保低版本客戶端能正常打開網頁連接;
支持分享大圖卡片樣式,自定義圖片建議長寬比是 5:4。6.5.9及以上版本微信客戶端小程序類型分享使用大圖卡片樣式。
支持分享開發版/體驗版小程序,爲支持開發者調試,開發者工具包支持分享開發版/體驗版小程序至微信,開發者可控制分享的小程序版本。
具體流程圖以下:
在朋友圈中,發佈圖片附帶小程序二維碼,用戶把圖片分享到朋友圈中,看到的一方便可長恩識別在微信中打開小程序。經過這個玩法,實現了把小程序「分享」到朋友圈。
至於圖片的生成,canvas和服務器端生成都是比較成熟的解決方案。
這個玩法有一個前提:小程序卡片必須是由APP分享出去,才能夠打開APP
功能流程圖以下:
該途徑能夠做爲小程序對於app的補充:產品能夠經過 App 和小程序實現場景互補。
好比用戶 Sherry 將一個文檔分享給用戶 Kevin,Kevin 能夠在小程序內直接查看。若是須要編輯,則能夠直接打開 App 完成協同處理。這樣一來,小程序不須要作的很重,只需知足基本功能,更多功能由 App 來補充。
case舉例:用戶代打車,用戶A想讓用戶B代打車,用戶A將行程分享給用戶B,用戶B微信打開小程序以後,跳轉美團打車APP完成相關複雜操做。
在小程序中,能夠利用一些引導性文案指引用戶點擊進入客服會話頁面,而後客服自動回覆一條公衆號圖文消息,而圖文消息則有引導關注公衆號獲取更多服務的指引文案。(經典用法,可是當心被封)
比較小衆的玩法:用戶能夠從小程序中快速領取會員卡和優惠券,也能夠從卡包中的會員卡直達小程序。
增長接入途徑:從卡包直接進入(髮卡須要註冊並認證)