溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊(cè)×
其他方式登錄
點(diǎn)擊 登錄注冊(cè) 即表示同意《億速云用戶(hù)服務(wù)條款》

小程序怎么實(shí)現(xiàn)轉(zhuǎn)發(fā)

發(fā)布時(shí)間:2022-04-08 10:34:55 來(lái)源:億速云 閱讀:559 作者:iii 欄目:編程語(yǔ)言

今天小編給大家分享一下小程序怎么實(shí)現(xiàn)轉(zhuǎn)發(fā)的相關(guān)知識(shí)點(diǎn),內(nèi)容詳細(xì),邏輯清晰,相信大部分人都還太了解這方面的知識(shí),所以分享這篇文章給大家參考一下,希望大家閱讀完這篇文章后有所收獲,下面我們一起來(lái)了解一下吧。

轉(zhuǎn)發(fā)的意義

  • 轉(zhuǎn)發(fā)即是分享,分享帶動(dòng)了事物去中心化,實(shí)現(xiàn)網(wǎng)絡(luò)化,最終走向云處理化

  • 通過(guò)微信平臺(tái),轉(zhuǎn)發(fā)即是聊天

  • 流量時(shí)代,轉(zhuǎn)發(fā)即是引流

官方轉(zhuǎn)發(fā)示例

onShareAppMessage(Object)

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

Object 參數(shù)說(shuō)明:

小程序怎么實(shí)現(xiàn)轉(zhuǎn)發(fā)

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

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

小程序怎么實(shí)現(xiàn)轉(zhuǎn)發(fā)

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

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

  • 在onShareAppMessage中定義轉(zhuǎn)發(fā)內(nèi)容和必要參數(shù),如?id=123

  • 在相應(yīng)頁(yè)面的onLoad(Object query)中可以獲取

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

  • 對(duì)于小程序,可以在 App 的 onLaunch 和 onShow,或wx.getLaunchOptionsSync 中獲取場(chǎng)景值

  • 由于onLaunch全局只觸發(fā)一次和熱啟動(dòng)的原因,在onShow中獲取、設(shè)置相關(guān)參數(shù)比較合理,尤其是轉(zhuǎn)發(fā),從微信消息過(guò)來(lái),必然會(huì)觸發(fā)onShow

  • 通過(guò)app.onShow回調(diào),獲取場(chǎng)景值

App({
 onShow(res) {
  console.log('app---onShow');
  console.log(res.scene);
  //1044是群聊,1007是私聊
 }
})

wx.onAppShow(function callback)

基礎(chǔ)庫(kù) 2.1.2 開(kāi)始支持,低版本需做兼容處理

監(jiān)聽(tīng)小程序切前臺(tái)事件。該事件與 App.onShow 的回調(diào)參數(shù)一致

Object res

小程序怎么實(shí)現(xiàn)轉(zhuǎn)發(fā)

referrerInfo 的結(jié)構(gòu)

小程序怎么實(shí)現(xiàn)轉(zhuǎn)發(fā)

返回有效 referrerInfo 的場(chǎng)景

小程序怎么實(shí)現(xiàn)轉(zhuǎn)發(fā)

注意
部分版本在無(wú)referrerInfo的時(shí)候會(huì)返回 undefined,建議使用 options.referrerInfo && options.referrerInfo.appId 進(jìn)行判斷

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

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

  • 和場(chǎng)景值scene一樣,shareTicket也是在App.onShow中獲取比較合理

  • 必須在分享前調(diào)用wx.showShareMenu方法,否則不會(huì)帶分享票據(jù)

//分享前share.js
Page({
 onLoad: function () {
  wx.showShareMenu({
   withShareTicket: true
  })
 }
})
//分享后app.js
App({
 onShow(res) {
  console.log('app---onShow');
  console.log(res.shareTicket);
 }
})
  • 只有分享到任一群聊,shareTicket才會(huì)有值,否則是undefined

  • shareTicket也可以用來(lái)區(qū)分轉(zhuǎn)發(fā)消息的場(chǎng)景

  • shareTicket主要用來(lái)獲取轉(zhuǎn)發(fā)詳情,傳入wx.getShareInfo()中獲取加密數(shù)據(jù),需要后端配合,返回解密數(shù)據(jù)

注意:注意:注意
鑒于官方“分享監(jiān)聽(tīng)”能力調(diào)整,網(wǎng)上90%的滯后代碼,誤人子弟,在此必須給自己一個(gè)小要求,定期復(fù)讀自己的文章,根據(jù)當(dāng)時(shí)能力水平,提高文章質(zhì)量,修正錯(cuò)誤和滯后信息(吐槽一下度娘已死,沒(méi)人打我吧?打我就刪除)

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

小程序怎么實(shí)現(xiàn)轉(zhuǎn)發(fā)

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

第一種:判斷用戶(hù)是否分享成功,進(jìn)而給予用戶(hù)獎(jiǎng)勵(lì)。

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

這類(lèi)誘導(dǎo)用戶(hù)分享的行為是我們平臺(tái)所不倡導(dǎo)的,后續(xù)將沒(méi)有辦法實(shí)現(xiàn)。

第二種:分享完成后變更當(dāng)前的頁(yè)面狀態(tài)

例如:贈(zèng)送禮品場(chǎng)景下,用戶(hù)點(diǎn)擊“贈(zèng)送”按鈕,將禮品分享出去,分享成功后,界面展示“等待領(lǐng)取”。

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

第三種:通過(guò)用戶(hù)分享之后的 shareTicket 獲取群唯一標(biāo)識(shí) openGId ,以顯示對(duì)應(yīng)群的相關(guān)信息。

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

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

詳情請(qǐng)查看分享監(jiān)聽(tīng)能力調(diào)整

轉(zhuǎn)發(fā)動(dòng)態(tài)消息

從基礎(chǔ)庫(kù) 2.4.0 開(kāi)始,支持轉(zhuǎn)發(fā)動(dòng)態(tài)消息。動(dòng)態(tài)消息對(duì)比普通消息,有以下特點(diǎn):

  • 消息發(fā)出去之后,開(kāi)發(fā)者可以通過(guò)后臺(tái)接口修改部分消息內(nèi)容

  • 消息有對(duì)應(yīng)的提醒按鈕,用戶(hù)點(diǎn)擊提醒按鈕可以訂閱提醒,開(kāi)發(fā)者可以通過(guò)后臺(tái)修改消息狀態(tài)并推送一次提醒消息給訂閱了提醒的用戶(hù)

簡(jiǎn)要步驟如下

  1. (后端調(diào)用)每條動(dòng)態(tài)消息可以理解為一個(gè)活動(dòng),活動(dòng)發(fā)起前需要通過(guò) createActivityId 接口創(chuàng)建 activity_id后續(xù)轉(zhuǎn)發(fā)動(dòng)態(tài)消息以及更新動(dòng)態(tài)消息都需要傳入這個(gè) activity_id

  2. 通過(guò)調(diào)用 wx.updateShareMenu 接口,傳入 isUpdatableMessage: true等參數(shù)

  3. (后端調(diào)用)動(dòng)態(tài)消息發(fā)出去之后,可以通過(guò) setUpdatableMsg 修改消息內(nèi)容

像拼團(tuán)這樣的活動(dòng),可以考慮優(yōu)化成動(dòng)態(tài)消息,需要后端配合,實(shí)戰(zhàn)的時(shí)再補(bǔ)充

以上就是“小程序怎么實(shí)現(xiàn)轉(zhuǎn)發(fā)”這篇文章的所有內(nèi)容,感謝各位的閱讀!相信大家閱讀完這篇文章都有很大的收獲,小編每天都會(huì)為大家更新不同的知識(shí),如果還想學(xué)習(xí)更多的知識(shí),請(qǐng)關(guān)注億速云行業(yè)資訊頻道。

向AI問(wèn)一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如果涉及侵權(quán)請(qǐng)聯(lián)系站長(zhǎng)郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI