今天簡單地說下微信小程式的轉發功能,為什麼要簡單的說下呢,因為主要講的就是轉發給好友或群組,還有一種是分享到朋友圈,這種就比較複雜一點了,先稍微透漏一點,分享到朋友圈主要是兩種方法,一種是後台直接生成海報圖,一種是前端透過canvas產生海報。以後有機會再詳細說,好了,言歸正傳繼續說我們的轉發好友。
首先介紹一個微信小程式的API:onShareAppMessage(options)
在 Page 定義 onShareAppMessage 函數,設定該頁面的轉送資訊。
只有定義了此事件處理函數,右上角選單才會顯示「轉發」按鈕
使用者點擊轉發按鈕的時候會調用
此事件需要return 一個Object,用於自訂轉送內容
options 參數說明
參數 | 類型 | 說明 | 最低版本 |
---|---|---|---|
from | String | 轉送事件來源。 button:頁面內轉送按鈕;menu:右上角轉送選單 | 1.2.4 |
#target | ##Object如果from值為button,則target 是觸發這次轉送事件的button,否則為undefined | 1.2.4 |
說明 | 預設值 | #最低版本 | |
---|---|---|---|
##title | 轉送標題 | 目前小程式名稱 | |
path | 轉送路徑 | 目前頁面path ,必須是以/ 開頭的完整路徑 | |
imageUrl | 自訂圖片路徑,可以是本機檔案路徑、程式碼包檔案路徑或網路圖片路徑,支援PNG及JPG,不傳入imageUrl 則使用預設截圖。顯示圖片長寬比是5:4 | 1.5.0 | |
success | 轉送成功的回調函數 | 1.1.0 | |
#fail | 轉送失敗的回呼函數 |
|
##1.1.0 |
complete | 轉送結束的回呼函數(轉送成功、失敗都會執行 | 1.1.0 |
#還有一個值那就是shareTickets他是轉送成功回傳的,並且是個數組,每一項是一個shareTicket ,對應一個轉送物件
API先說到這,接下來就是轉送的實作
先看圖:
首先要在onLoad中設定wx.showShareMenu
onLoad: function (e) { wx.showShareMenu({ // 要求小程序返回分享目标信息 withShareTicket: true }); },
然後再設定onShareAppMessage
/* 转发*/ onShareAppMessage: function (ops) { if (ops.from === 'button') { // 来自页面内转发按钮 console.log(ops.target) } return { title: '转发dom', path: `pages/index/index`, success: function (res) { // 转发成功 console.log("转发成功:" + JSON.stringify(res)); var shareTickets = res.shareTickets; // if (shareTickets.length == 0) { // return false; // } // //可以获取群组信息 // wx.getShareInfo({ // shareTicket: shareTickets[0], // success: function (res) { // console.log(res) // } // }) }, fail: function (res) { // 转发失败 console.log("转发失败:" + JSON.stringify(res)); } } },
我解釋一下wx.getShareInfo這個可以取得到取得轉送詳細資訊
完整js程式碼就是
//index.js //获取应用实例 const app = getApp() Page({ data: { motto: 'Hello World', }, onLoad: function (e) { wx.showShareMenu({ // 要求小程序返回分享目标信息 withShareTicket: true }); }, /* 转发*/ onShareAppMessage: function (ops) { if (ops.from === 'button') { // 来自页面内转发按钮 console.log(ops.target) } return { title: '转发dom', path: `pages/index/index`, success: function (res) { // 转发成功 console.log("转发成功:" + JSON.stringify(res)); var shareTickets = res.shareTickets; // if (shareTickets.length == 0) { // return false; // } // //可以获取群组信息 // wx.getShareInfo({ // shareTicket: shareTickets[0], // success: function (res) { // console.log(res) // } // }) }, fail: function (res) { // 转发失败 console.log("转发失败:" + JSON.stringify(res)); } } }, })
聰明的同學就該知道接下來該是wxml程式碼
<view class="container"> <view class="userinfo"> <button open-type="share">分享好友</button> </view> <view class="usermotto"> <text class="user-motto">{{motto}}</text> </view> </view>
友誼提示一下如果點擊按鈕分享的話,button一定要設定open-type= "share"否則不起作用。
如果覺得文章還不錯並對你有幫助的話,請分享給你的小伙伴,並點贊,有什麼不懂得可以在底下留言哦。
推薦教學:《微信小程式》
以上是微信小程式轉發好友的功能的詳細內容。更多資訊請關注PHP中文網其他相關文章!