1. 程式人生 > >關於微信中直接調起 Native App 的調研報告

關於微信中直接調起 Native App 的調研報告

注:本篇報告只對市面上的 Android 以及 IOS 的機器做相容。

眾所周知,在 IOS8 以下版本及 Android 的微信中我們是無法直接調起 app 的,但是發現業內的包括頭條和微博是可以直接在微信端內直接調起 app 的。找了很多部落格,發現沒有詳細的方法介紹,特此記錄下來。
正常的,我們在瀏覽器之中可以使用 Android 的 Schema 在頁內進行 app 的喚醒(這裡面存在一些坑,比如手百,一直想不通一個瀏覽器會去攔截 Android Schema ),但是微信對此做了攔截,無法通過正常的方案去調起。對此,有個不錯的替代方案,就是騰訊的親兒子 —— 應用寶。

騰訊開放平臺出了一個叫做微下載的解決方案,可提供一個二維碼同時對應 Android 以及 IOS 的 app 下載,也提供了 AppLink 功能,其可以使得你直接調轉 app 喚醒後的指定活動頁面。下面來介紹一下詳細的 hack 流程。(無需裝機應用寶,通過應用寶 H5 頁面喚醒)

(1)首先你的應用需要滿足一下幾點硬性要求:
應用已釋出在應用寶中。
以下四點任意滿足一點即可。
—— 應用評級達到A級;
—— 應用微下載日訪問量達到10W/天;
—— 專案/應用參加騰訊“雙百”扶持計劃;
—— 應用由騰訊投資佔股。

(2)獲取你的應用寶渠道包連結。(如下圖)
渠道包的連結的例子

這裡面存在了一個 ckey 的問題,因為之前抓取了微博的 AppLink,發現連結中有 ckey,但自己這邊卻不知道如何拿到,如這個連結:
http://a.app.qq.com/o/simple.jsp?pkgname=com.sina.weibo&ckey=CK1327948375357
可以直接在應用寶中調起微博,經過調研發現 ckey 是渠道包連結,如果是想區分渠道來源的話可以加上ckey引數,不加也不影響使用,直接在主連結後加引數就可以了。

那麼什麼是渠道包?這裡解釋一下。(如下圖)
渠道包示例
簡單的總結一下:這個就是可以上傳不同的渠道包,監控不同渠道的效果的。

(3)使用 AppLink 跳轉至 app 端內指定活動頁面。(注:此 link 通用 Android 以及 IOS 兩端,但是 IOS8 以及以下版本不能確定是否調起成功,不成功則通過 app store 做迂迴方案,據說是市面上 IOS8- 的使用者較少,官方不能確定)
AppLink 的跳轉需要 Android Schema 的支援,需要將 Android Schema 交予應用寶的對接人員進行繫結(這裡需要符合(1)中所述的條件),繫結過即可生效。連結的拼接方式如下:

當你做完上述步驟之後,你就可以測試你的連結是否生效了。

那麼最後,IOS9 如何做到微信端內調起呢(不止於微信,微博分享也可直接調起),就是使用 UnversalLink 了,具體方法可參考百度,或者詢問 IOS 開發人員。

總結:有一個弊端,IOS8 以下版本以及 Android 雖然可以在騰訊系的產品中通過此種方式調起,但是在微博中的 link 還沒有找到好的替代方案(目前只知道瀏覽器迂迴)。如有解決方案,可以留言討論。

此處附上 IOS9+ 微信端內調起解決方案: 戳我