千呼萬喚始出來,微信小程序終於支持以URL Scheme的形式從外部喚起了。
long long ago~ 我們只能在微信內的網頁中使用微信開發標籤-小程序跳轉按鈕 <wx-open-launch-weapp>打開小程序,只有這樣一種單一的場景。
而在實際的業務中,我們希望在給用戶發送的營銷簡訊、郵件或其他渠道如APP打開小程序,以快速獲取用戶流量,完成引流、導購等目的。
他來啦,他來啦,微信小程序悄咪咪的上線了新功能:支持URL Scheme打開小程序了。
新品上線URL Scheme打開小程序新品上線,速來嘗鮮。
我們首先來看下目前微信官方提供的兩種打開微信小程序的方式以及相關適用場景。
打開方式適用場景場景值使用方式備註URL Scheme簡訊、郵件、微信外網頁打開小程序1065location.href = 'weixin://dl/business/?t= *TICKET*'TICKET由服務端接口返回<wx-open-launch-weapp>微信內網頁1167頁面配置<wx-open-launch-weapp>標籤需配置JS接口域名或雲開發靜態網站託管綁定的域名下網頁一定要注意區分兩種方式的適用場景:URL scheme是適用於微信外網頁,<wx-open-launch-weapp>是適用於微信內的。
小程序URL Scheme的獲取小程序的URL Scheme的結構為 weixin://dl/business/?t= *TICKET*,其中TICKET由服務端接口返回的。服務端接口區分兩種形式:HTTPS調用和雲開發調用。
一、HTTPS調用獲取ACCESS_TOKEN
請求地址:
GET https://api.weixin.qq.com/cgi-bin/token?grant_type=client_credential&appid=APPID&secret=APPSECRET
對應的APPID和APPSECRET換成自己對應的小程序即可。
返回的數據結構如下:
{
"access_token": "ACCESS_TOKEN",
"expires_in": 7200
}
獲取URL Scheme
請求地址:
POST https://api.weixin.qq.com/wxa/generatescheme?access_token=ACCESS_TOKEN
請求參數:
屬性類型默認值必填說明access_tokenstringjump_wxa 的結構
屬性類型默認值必填說明pathstring請求示例:
{
"jump_wxa": {
"path": "/pages/index/index",
query": ""
},
"is_expire": true,
"expire_time": 1606737600
}
返回結果:
{
"errcode": 0,
"errmsg": "ok",
"openlink": Scheme,
}
openlink就是我們最終需要的URL Scheme啦~
二、雲調用
雲調用是小程序·雲開發提供的在雲函數中調用微信開放接口的能力,需要在雲函數中通過 wx-server-sdk 使用
請求參數:
屬性類型默認值必填說明access_tokenstring注意和HTTPS中參數名大小寫不一致的情況
jump_wxa 的結構
屬性類型默認值必填說明pathstring請求示例:
const cloud = require('wx-server-sdk')
cloud.init({
env: cloud.DYNAMIC_CURRENT_ENV,
})
exports.main = async (event, context) => {
try {
const result = await cloud.openapi.urlscheme.generate({
jumpWxa: {
path: '/pages/index/index',
query: ''
},
isExpire: true,
expireTime: 1606737600
})
return result
} catch (err) {
return err
}
}返回結果:
{
"errcode": 0,
"errmsg": "ok",
"openlink": Scheme,
}openlink就是我們最終需要的URL Scheme啦~
小程序URL Scheme的使用小程序URL Scheme的結構是:weixin://dl/business/?t= *TICKET*,那我們拿到這個scheme之後如果使用呢。
在IOS系統下是支持直接識別URL Scheme的,所以可以直接將URL Scheme發送到簡訊、郵件中,提供給用戶使用。但是在Android系統不支持直接識別URL Scheme,用戶無法Scheme正常打開小程序,所以需要開發者自行使用H5頁面進行中轉,再跳轉使用Scheme方式打開微信小程序。
端使用方式備註Androidlocation.href='weixin://dl/business/?t= *TICKET*'只有一種方式IOS直接識別URL Scheme 或使用location.href方式兩種方式But, 我們要注意一個問題,當我們進行簡訊觸達時,無法確定用戶所使用的的手機設備是IOS還是Android,
So, 我們從實際的業務觸發,都需要一個H5頁面進行中轉處理。
小程序喚起業務流程圖噹噹當,綜合兩種打開小程序的方式(URL Scheme和 <wx-open-launch-weapp>),完整版的小程序喚起業務流程圖來啦~
小程序喚起業務流程圖