日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

玩转小程序转发——小程序探索

發(fā)布時間:2024/4/17 编程问答 39 豆豆
生活随笔 收集整理的這篇文章主要介紹了 玩转小程序转发——小程序探索 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

轉發(fā)的意義

  • 轉發(fā)即是分享,分享帶動了事物去中心化,實現(xiàn)網(wǎng)絡化,最終走向云處理化
  • 通過微信平臺,轉發(fā)即是聊天
  • 流量時代,轉發(fā)即是引流

官方轉發(fā)示例

onShareAppMessage(Object)

  • 監(jiān)聽用戶點擊頁面內(nèi)轉發(fā)按鈕(<button> 組件 open-type="share")或右上角菜單“轉發(fā)”按鈕的行為,并自定義轉發(fā)內(nèi)容。
  • 注意:只有定義了此事件處理函數(shù),右上角菜單才會顯示“轉發(fā)”按鈕

Object 參數(shù)說明:

此事件需要 return 一個 Object,用于自定義轉發(fā)內(nèi)容,返回內(nèi)容如下:

自定義轉發(fā)內(nèi)容

Page({onShareAppMessage(res) {if (res.from === 'button') {// 來自頁面內(nèi)轉發(fā)按鈕console.log(res.target)}return {title: '自定義轉發(fā)標題',path: '/page/user?id=123'}} })

常規(guī)轉發(fā),只需上面示例即可

  • 在onShareAppMessage中定義轉發(fā)內(nèi)容和必要參數(shù),如?id=123
  • 在相應頁面的onLoad(Object query)中可以獲取

根據(jù)場景值區(qū)分

  • 對于小程序,可以在 App 的 onLaunch 和 onShow,或wx.getLaunchOptionsSync 中獲取場景值
  • 由于onLaunch全局只觸發(fā)一次和熱啟動的原因,在onShow中獲取、設置相關參數(shù)比較合理,尤其是轉發(fā),從微信消息過來,必然會觸發(fā)onShow
  • 通過app.onShow回調(diào),獲取場景值
App({onShow(res) {console.log('app---onShow');console.log(res.scene);//1044是群聊,1007是私聊} })

wx.onAppShow(function callback)

基礎庫 2.1.2 開始支持,低版本需做兼容處理
監(jiān)聽小程序切前臺事件。該事件與 App.onShow 的回調(diào)參數(shù)一致
Object res

referrerInfo 的結構

返回有效 referrerInfo 的場景

注意
部分版本在無referrerInfo的時候會返回 undefined,建議使用 options.referrerInfo && options.referrerInfo.appId 進行判斷

小程序分享票據(jù)shareTickets

通常開發(fā)者希望轉發(fā)出去的小程序被二次打開的時候能夠獲取到一些信息,例如群的標識。現(xiàn)在通過調(diào)用 wx.showShareMenu 并且設置 withShareTicket 為 true ,當用戶將小程序轉發(fā)到任一群聊之后,此轉發(fā)卡片在群聊中被其他用戶打開時,可以在 App.onLaunch 或 App.onShow 獲取到一個 shareTicket。通過調(diào)用 wx.getShareInfo() 接口傳入此 shareTicket 可以獲取到轉發(fā)信息。

  • 和場景值scene一樣,shareTicket也是在App.onShow中獲取比較合理
  • 必須在分享前調(diào)用wx.showShareMenu方法,否則不會帶分享票據(jù)
//分享前share.js Page({onLoad: function () {wx.showShareMenu({withShareTicket: true})} }) //分享后app.js App({onShow(res) {console.log('app---onShow');console.log(res.shareTicket);} })
  • 只有分享到任一群聊,shareTicket才會有值,否則是undefined
  • shareTicket也可以用來區(qū)分轉發(fā)消息的場景
  • shareTicket主要用來獲取轉發(fā)詳情,傳入wx.getShareInfo()中獲取加密數(shù)據(jù),需要后端配合,返回解密數(shù)據(jù)
注意:注意:注意
鑒于官方“分享監(jiān)聽”能力調(diào)整,網(wǎng)上90%的滯后代碼,誤人子弟,在此必須給自己一個小要求,定期復讀自己的文章,根據(jù)當時能力水平,提高文章質(zhì)量,修正錯誤和滯后信息(吐槽一下度娘已死,沒人打我吧?打我就刪除)

類似如下代碼,現(xiàn)在已不支持回調(diào)

此次調(diào)整可能影響到三種分享功能的用法

  • 第一種:判斷用戶是否分享成功,進而給予用戶獎勵。

    例如:小程序提示用戶“分享到5個群,可以獲得一張20元的優(yōu)惠券”。

    這類誘導用戶分享的行為是我們平臺所不倡導的,后續(xù)將沒有辦法實現(xiàn)。

  • 第二種:分享完成后變更當前的頁面狀態(tài)

    例如:贈送禮品場景下,用戶點擊“贈送”按鈕,將禮品分享出去,分享成功后,界面展示“等待領取”。

    這類場景,我們建議可以適當調(diào)整交互方案。例如在分享后繼續(xù)保留“贈送”按鈕,但在頁面上提示用戶一個禮品只能被一人領取,重復贈送無效。

  • 第三種:通過用戶分享之后的 shareTicket 獲取群唯一標識 openGId ,以顯示對應群的相關信息。

    例如:通過分享小程序到某個群里,可以查看該群內(nèi)成員的排行榜。

此次調(diào)整后,用戶分享完成后無法立刻顯示該群的排行榜信息,但仍可在用戶從群消息點擊進入小程序時顯示該群的排行榜信息。

  • 詳情請查看 分享監(jiān)聽能力調(diào)整

轉發(fā)動態(tài)消息

從基礎庫 2.4.0 開始,支持轉發(fā)動態(tài)消息。動態(tài)消息對比普通消息,有以下特點:

  • 消息發(fā)出去之后,開發(fā)者可以通過后臺接口修改部分消息內(nèi)容
  • 消息有對應的提醒按鈕,用戶點擊提醒按鈕可以訂閱提醒,開發(fā)者可以通過后臺修改消息狀態(tài)并推送一次提醒消息給訂閱了提醒的用戶

簡要步驟如下

  • (后端調(diào)用)每條動態(tài)消息可以理解為一個活動,活動發(fā)起前需要通過 createActivityId 接口創(chuàng)建 activity_id 后續(xù)轉發(fā)動態(tài)消息以及更新動態(tài)消息都需要傳入這個 activity_id
  • 通過調(diào)用 wx.updateShareMenu 接口,傳入 isUpdatableMessage: true等參數(shù)
  • (后端調(diào)用)動態(tài)消息發(fā)出去之后,可以通過 setUpdatableMsg 修改消息內(nèi)容
  • 像拼團這樣的活動,可以考慮優(yōu)化成動態(tài)消息,需要后端配合,實戰(zhàn)的時再補充

    總結

    • 分享監(jiān)聽能力調(diào)整后,對于分享的騷操作基本在App.onShow中進行,相當于授權那樣,必須打開轉發(fā)消息才能獲取轉發(fā)詳情,這也是符合設計準則的
    • 可以看出,不管是從設計準則,還是用戶隱私,微信都在向著IOS看齊,黑暗法則已過去,我們也該注重規(guī)范和隱私了

    總結

    以上是生活随笔為你收集整理的玩转小程序转发——小程序探索的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

    如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。