掃普通鏈接二維碼打開小程序的踩坑過程...

一、背景

近期,項(xiàng)目中有一個需求是掃普通鏈接二維碼打開微信小程序的需求,所以整理了一下。

首先,喚起微信小程序的幾種方式:

  1. 掃小程序碼。
  2. 掃小程序二維碼,可滿足不同需求和場景,例如業(yè)務(wù)中需要記錄渠道參數(shù)等。該二維碼可通過微信提供的接口生成,詳情看獲取小程序二維碼
  3. H5 項(xiàng)目喚起小程序,分為三種情況:
  1. 掃普通鏈接二維碼打開小程序(本文介紹的對象)。登錄小程序后臺,進(jìn)入“設(shè)置 — 開發(fā)設(shè)置 — 掃普通鏈接二維碼打開小程序”,開啟功能后即可配置二維碼規(guī)則。這種方式配置簡單、靈活,且無需自行開發(fā) H5 項(xiàng)目。

總的來說,wx-open-launch-weapp 需在微信客戶端方可有效。URL Scheme 方式僅可在普通瀏覽器中喚起。這兩種都需要自行實(shí)現(xiàn) H5。普通鏈接二維碼 支持使用微信掃一掃或微信內(nèi)長按識別二維碼跳轉(zhuǎn)小程序。

二、掃普通鏈接二維碼打開小程序

下面只會介紹或者強(qiáng)調(diào),一些踩坑點(diǎn)、容易忽略的地方,更詳細(xì)請看 ?? 官方文檔。

  1. 對于普通鏈接二維碼,目前支持使用微信掃一掃微信內(nèi)長按識別二維碼跳轉(zhuǎn)小程序。

  2. 該功能暫不支持個人類型小程序。

  3. 二維碼跳轉(zhuǎn)規(guī)則其中一條需要注意的:如需支持子路徑匹配,請確認(rèn)后臺配置的二維碼規(guī)則以 / 結(jié)尾。

后臺已配置的二維碼規(guī)則 線下二維碼完整鏈接 錯誤原因
https://www.qq.com/a/b https://www.qq.com/a/b/123 規(guī)則沒有以 / 結(jié)尾,不支持子路徑匹配
  1. 帶參取參的問題:

假設(shè)我們所要打開小程序的路徑為 pages/index/index,需要攜帶參數(shù) channel 字段,若配置如下:

圖中二維碼規(guī)則的域名是亂寫的,自行改成名下服務(wù)器并校驗(yàn)即可。

所以我們就可以拿到一個符合規(guī)則的鏈接:https://www.qq.com/test?channel=123,這也滿足了我們攜帶 channel 參數(shù)的需求。然后我們可以利用其它工具將該鏈接生成二維碼測試一下。

如不確定自己編寫的鏈接是否滿足規(guī)則,可在配置項(xiàng)的測試鏈接中填寫,若不符合規(guī)則,會有提示以及無法保存成功。

如何獲取該參數(shù)呢?

我們二維碼的鏈接內(nèi)容會以參數(shù) q 的形式帶給頁面??稍?App.onLaunch、App.onShow、Page.onLoad 中取出來,還需要自行 decodeURIComponent 一下,才是原二維碼的完整內(nèi)容。

// app.js
App({
  onLaunch(options) {
    console.log(options)
    // {
    //   mode: 'default',
    //   path: 'pages/index/index',
    //   query: {
    //     q: 'https%3A%2F%2Fwww.qq.com%2Ftest%3Fchannel%3D123',
    //     scancode_time: '1615973269',
    //   },
    //   referrerInfo: {
    //     scene: 1011
    //   }
    // }
  }
})


// index.js
Page({
 onLoad(options) {
    console.log(options)
    // {
    //   q: 'https%3A%2F%2Fwww.qq.com%2Ftest%3Fchannel%3D123',
    //   scancode_time: '1615973269'
    // }
  }
})
  1. 小程序必須先發(fā)布代碼才可以發(fā)布二維碼跳轉(zhuǎn)規(guī)則。一個小程序帳號一個月可發(fā)布不多于 20 次二維碼跳轉(zhuǎn)規(guī)則。

  2. 如何在不提審的情況下進(jìn)行測試?

假設(shè)我們小程序已經(jīng)上線,且相關(guān)規(guī)則發(fā)布之后,掃碼該鏈接會打開線上版本的小程序。如果我們想要打開開發(fā)版,就要在測試鏈接中,將該鏈接配置并保存,然后重新掃碼即可。

  1. 二維碼配置規(guī)則必須發(fā)布后等待 5 分鐘以后才可以使用。(這個坑我沒踩,因?yàn)槲覍戇@篇文章的時候還處在調(diào)研階段,哈哈)

三、參考

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容