A小程序與B小程序相互跳轉的一點記錄

要點速覽:

  • A小程序和B小程序關聯同一個公衆號
  • B程序的用戶受權
  • A小程序和B小程序的用戶關聯
  • 諸葛 io 統計用戶訪問信息

需求:微信放開小程序互跳的 API 後,一些導流和拉新等活動能夠在新的小程序實現html

從微信官方文檔中,小程序以前的互相跳轉使用 wx.navigateToMiniProgram 跳轉,可是最新版本使用 <navigator> 組件來使用。參考下示例 demo:小程序

<view class="demo">
    <navigator 
        path="pages/index/index?uid={{uid}}"    // 跳轉路徑,能夠傳參
        target="miniProgram"        // 跳轉目標
        app-id='wx3619c30049ec8aed' // 須要跳轉的小程序ID
        version="develop"           // 當前小程序和目標小程序一致
        open-type='navigate'        // 跳轉小程序
        class="demo_text">
    </navigator>
</view>

具體參考官方文檔 =>
官方 navigator 文檔後端

1、B小程序的用戶受權

首先用戶初次進入B程序後給一個蒙層,用戶點擊後主動去受權,而後拿到用戶的受權信息後再進行操做,拒絕操做後蒙層不消失。
經過 wx.getUserInfo 獲取用戶信息,而後將臨時獲取的 code 值以及向量等值參數傳給後端,獲取到用戶信息,如openId、userId 以及 token 存入全局以及緩存中,完成後從新調用 onLoad 函數 。
onLoad 函數中有一步很重要的操做就是獲取 openId 來判斷是否受權成功,這裏我一開始是經過異步接口 wx.getstoragesync 獲取,
可是部分安卓機型會第一次受權不成功,緣由就在於設置緩存的時候是經過同步的方式,可是獲取的時候是異步,致使偶爾獲取不到,後來改爲從 全局 中獲取 openId 就沒有這個問題了。緩存

2、A程序和B程序的用戶關聯

咱們的目標仍是拉新和引流,因此咱們須要把關聯B程序的用戶引入A小程序而且關聯起來用戶信息,
單個小程序中惟一標識是 openId ,可是多個小程序關聯咱們的惟一標識是 unionid ,咱們受權登陸的接口中,咱們先調用了 wx.getUserInfo 返回的成功回調包含 iv,rawData,signature,encryptedData等字段 ,而後調用 wx.login 獲取 code 再統一傳入後端解密獲得解密後須要的用戶信息,這裏rawData,signature 是來作校驗的。微信

用戶信息.png

從B程序跳入A後,咱們攜帶B程序的 user_id 等參數,而後傳入B的 user_id 以及A的 user_id 去查詢庫中是否存在關聯的 unionid ,這裏A的受權登陸操做和以前同樣,略過。
步驟以下:app

跳入步驟.png

3、諸葛 io 統計用戶訪問信息

諸葛 io 相似於微信統計,都是一種埋點統計功能,咱們經常使用的數據存儲和分析載體是 事件 ,經過對用戶行爲的分析提供更好的服務以及實現數據驅動的精準運營。
經過安裝諸葛的 sdk,而後在經過事件監聽的機制瞭解到用戶進入了哪一個商品以及行爲,官網的 demo 以下:異步

zhuge.track('進入商品詳情頁', {
    '商品名稱' : '【聯通贈費版】Apple iPhone 7 Plus 128G 黑色 移動聯通電信4G手機',
    '商品價格' : 6588.00,
    '商品一級分類' : 手機,
    '商品品牌' : 'Apple'});   //屬性名稱不能超過255個字符,屬性值不能超過200個字符

經過這種埋點統計咱們很方便的可視化了解到用戶的喜愛和行爲以及留存率等等指標,爲後續的運營活動提供更精準的投放。
詳情請參考=>諸葛io文檔函數

4、A小程序跳轉B小程序

從老站跳新站其實流程同樣,一樣須要傳入老站的 user_id 去作關聯操做,可是有一個不同的是不須要受權後走關聯接口,能夠直接在受權的時候
將老站的 user_id 直接從登陸接口中傳入便可。
ui

相關文章
相關標籤/搜索