微信小程序 轉發 分享功能(二)


關於小程序的轉發:

最簡單的就是點擊小程序右上角菜單“轉發”按鈕直接分享,不過這種分享有點不太友好,實用性也不強。

當然,你可以自定義分享內容,包括標題,簡介,圖片及分享的小程序頁面路徑。

再高級一點,還可以對轉發出去的小程序被二次打開的時候獲取到一些信息。

一. 自定義轉發內容:

onShareAppMessage(Obj):

1. 監聽轉發按鈕(button open-type="share")或小程序右上角“轉發”按鈕的點擊行為;
2. 自定義轉發分享內容。
3. 還可以監聽這些信息:
 
示例代碼:
復制代碼
  /**
   * 用戶分享自定義
   */
  onShareAppMessage: function(res) {
    return {
      title: '哈根達斯冰激凌5折特惠',
      path: '/pages/index/index?goods_id=' + wx.getStorageSync("goods_id"),
      imageUrl: 'http://static.e-mallchina.com/pic/product/brand/detail/hgds.jpg'//自定義圖片路徑,可以是本地文件路徑、代碼包文件路徑或者網絡圖片路徑。支持PNG及JPG。顯示圖片長寬比是 5:4。
    }
  }
復制代碼

點擊右上角菜單中的“轉發”按鈕,分享效果如下:

二. 點擊頁面按鈕分享轉發:

<button> 組件設置 open-type="share"即可實現頁面內分享,點擊按鈕即可跟點擊右上角菜單中的轉發按鈕會有一樣的效果。

<button open-type='share' type='warn' size="mini" plain="true" id='btnShare0'>推薦給好友</button>

當然,跟右上角菜單中的轉發按鈕一樣,如果設置了自定義轉發內容,點擊分享按鈕也會展示自定義分享內容的。

三. 關閉分享功能:

wx.hideShareMenu(Object object):隱藏轉發按鈕,關閉轉發功能(不影響轉發按鈕的功能,只是右上角分享沒有了)。
復制代碼
  /**
   * 生命周期函數--監聽頁面加載
   */
  onLoad: function(options) {
    wx.hideShareMenu()
  },
  /**
   * 生命周期函數--監聽頁面顯示
   */
  onShow: function() {
    wx.hideShareMenu()
  },
復制代碼

 

四. 獲取更多轉發信息:

轉發出去的小程序被二次打開的時候能夠獲取到一些信息,例如群的標識。

大致流程:

1. 通過調用 wx.showShareMenu 並且設置 withShareTicket 為 true ;
2. 當用戶將小程序轉發到任一群聊之后, 此轉發卡片在群聊中被其他用戶打開時,可以在 App.onLaunch 或 App.onShow 獲取到一個 shareTicket;
3. 通過調用 wx.getShareInfo() 接口傳入此 shareTicket 可以獲取到轉發信息。

示例代碼:

復制代碼
  //分享頁面設置開啟分享群信息
  /**
   * 生命周期函數--監聽頁面加載
   */
  onLoad: function(options) {
    wx.showShareMenu({
      withShareTicket: true
    })
  },
  /**
   * 生命周期函數--監聽頁面顯示
   */
  onShow: function() {
    wx.showShareMenu({
      withShareTicket: true
    })
  }
復制代碼
復制代碼
//app.js 獲取小程序名片頁附帶的分享信息
App({
  onLaunch: function(ops) {
    //小程序在群里被打開后,獲取情景值和shareTicket
    console.log("ops:", ops)
    if (ops.scene==1044) {
      wx.getShareInfo({
        shareTicket: ops.shareTicket,
        success:function(res) {
          console.log("wx.getShareInfo:::", res)
        }
      })
    }
  }
})
復制代碼

分享到群里之后,在群里打開小程序,獲取類似下面的數據:

如上圖,獲取的就是分享到的群聊的相關信息了,不過這個信息是加密的,需要像獲取手機號一樣再去后端解密才可以。

其中 encryptedData 解密后為以下 json 結構,詳見加密數據解密算法。其中 openGId 為當前群的唯一標識:

{
"openGId": "OPENGID"
}
如需要展示群名稱,可以使用 開放數據組件

經驗證,這個功能只有在分享到群聊中才會有效,也就是說只能區分小程序是在群中還是好友聊天窗口中打開的,所以這個功能是比較雞肋的。

五. 其他一些功能:

還有一個接口,就是更新轉發屬性的接口:wx.updateShareMenu(Object object),平常用的不多,感興趣的可以自行去官網研究。

 

 

來源地址:https://www.cnblogs.com/xyyt
 
 
 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM