您的位置:首頁>科技>正文

一切為了運營!如何從推廣短信連結喚起 App?

需求描述

●●●

方案討論

對需求進行分析, 歸納起來實際上就是一個問題, 如何從短信喚起App?

這裡有兩種方案。

第一種, 也是最理想的直接從短信喚起, 也就是點擊短信中的連結後如果安裝了 App 就跳轉到 App, 如果沒有安裝就在流覽器打開對應頁面, 如下圖:

第二種, 經流覽器中轉喚起, 也就是點擊短信連結後先用流覽器打開對應頁面, 在頁面中進行“判斷”(實際上不是真正的判斷, 而是發一個scheme給系統)如果安裝了 App 就跳轉到 App, 否則就停留在當前頁。

下面將對這兩種方案分別進行分析、實施。

●●●

從短信直接喚起 App

通常,

App 監聽私有短功能變數名稱strange.com(不要問我為什麼是短功能變數名稱, 因為短信就是按字算錢的, 能省一分是一分)地址:

android:host="strange.com"

android:pathPattern=".*"

android:scheme="https"/>

android:host="strange.com"

android:pathPattern=".*"

android:scheme="http"/>

1. Android 系統

當點擊短信中的連結後, 系統會自行判斷, 如果安裝了 App 就會出一個彈框讓用戶選擇在 App 中打開還是在流覽器中打開, 如圖。

對用戶來說要多做一次選擇,

這絕對不是好的體驗。

為了解決這個問題, Android 6.0 開始支持 Deep Links, 讓用戶點選連結直達App。

首先, 在 intent-filter 中添加 android:autoVerify="true"。

其次, 在私有域下上傳一個 json 檔: https://strange.com/.well-known/assetlinks.json

檔內容:

[

系統在安裝應用後會自動訪問 json 檔進行檢驗, 如果檢驗通過, 用戶訪問 strange.com 功能變數名稱下的連結會直接跳轉到應用。

2.iOS 系統

必須採用 Universal Links, 否則點擊還是直接跳轉到流覽器。

從短信直接喚起 App 總結:

要實現短信直接喚起 App, Android可以用 intent-filter 對功能變數名稱進行監聽, 但是會出彈框讓用戶進行選擇, 為了更好的體驗, 建議採用 Deep Links 技術方案, 只支援 6.0 以上系統;iOS 只能採用 Universal Links 技術方案, 只支援 9.0 以上系統。

系統首選方案備選方案AndroidDeep Links(Android 6.0+)intent-filteriOSUniversal Links(iOS 9.0+)無, 只能跳流覽器

●●●

經流覽器中轉喚起 App

通常的做法是, App 中監聽scheme strange:

H5 頁面中內嵌:

或者執行腳本:

window.location.href="strange://login"

雖然彈框體驗欠缺, 不過也是目前比較好的方案了。

相容性問題

可是, 重點來了, 我們在實際測試過程中發現了一堆相容性問題, 在說明這些相容性問題前, 我們先解釋一個概念:intent:// 協議。

Android Chrome 25+ 後已經不支援自訂 scheme 的方式, 只支援 intent:// 協定, 最終要的是需要使用者手動進行 點擊 才能跳轉,

舉個例子:

Take a QR code

>// 失效

>// 失效

intent:// 協定格式說明:

intent:

目前市面上大多協力廠商流覽器都是基於 Chrome 開發, 這就帶來了相容性問題(沒有條件覆蓋所有的系統流覽器, 這裡只是有限測試的結果):

1、部分流覽器, 只支援 intent:// 協議 手動 喚起, 如chrome、錘子。

2、部分流覽器只支援 scheme 喚起, 如 UC 流覽器。

3、大部分流覽器, 同時支援 scheme 私有協定和intent:// 協議 自動 喚起。 但, 都沒有按標準的 intent:// 協議來實現(除了 360 流覽器, 給 360 點個贊):

· 有的流覽器在 App 沒安裝時並沒有執行S.browser_fallback_url, 而是跳轉到應用市場如獵豹流覽器4.46.3、樂視流覽器 1.2.1.29。

· 有的流覽器不支持S.browser_fallback_url如搜狗流覽器、歐朋流覽器、獵豹流覽器。

· 有的流覽器無論應用有無安裝S.browser_fallback_url一直都會執行如 QQ 流覽器。

所以對這部分流覽器, 不能使用 intent:// 協議。

4、更奇葩者, 二者都不支持, 如百度流覽器。

相容性問題解決方案

針對上述三個相容性問題, 第 4 種情況無解我們直接忽略, 第 2 第 3 種情況只能用自訂scheme 的方式。

// 如果安裝了 App 就跳轉, 否則就訪問 S.browser_fallback_url 的值 http://strange.com

我們來分析一下流覽器的 UA , 舉幾個例子:

//小米系統流覽器

User-Agent:Mozilla/5.0 (Linux; U; Android 6.0.1; zh-cn; MI 3W Build/MMB29M) AppleWebKit/537.36 (KHTML, like Gecko) Version/4.0 Chrome/53.0.2785.146 Mobile Safari/537.36 XiaoMi/MiuiBrowser/8.9.5

// 小米 Chrome 原生流覽器

User-Agent:Mozilla/5.0 (Linux; Android 6.0.1; MI 3W Build/MMB29M) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/57.0.2987.108 Mobile Safari/537.36

// 錘子系統流覽器

User-Agent:Mozilla/5.0 (Linux; Android 5.1.1; YQ603 Build/LMY47V) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/46.0.2490.11 Mobile Safari/537.36

// 錘子 Chrome 原生流覽器

User-Agent:Mozilla/5.0 (Linux; Android 5.1.1; YQ603 Build/LMY47V) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/50.0.2661.89 Mobile Safari/537.36

可以看出小米流覽器是在 Chrome 原生流覽器的 UA 上增加了 XiaoMi/MiuiBrowser/8.9.5 這部分特徵碼。類似的,很多協力廠商流覽器都是在 Chrome 基礎上增加自己的特徵碼,換句話說 Chrome 原生流覽器 UA 沒有自己的特徵。

而錘子系統流覽器和 Chrome 原生流覽器 UA 幾乎一樣,這就使得判斷是否錘子系統流覽器、 Chrome 原生流覽器 變得異常困難,要想盡可能完美解決問題只能使用排除法。

排除法由於不可能排除所有非 Chrome 原生流覽器,可能會存在誤傷的可能。

經流覽器中轉喚起 App 總結:

要實現經流覽器中轉 自動 喚起 App,Android和 iOS 都可以通過 自訂 scheme 的方式,但 Android 的情況稍顯複雜,因為部分流覽器並不支援,必須換成 intent:// 協定的方式 手動 喚起。

考慮到流覽器判斷的難度,結合流覽器市場佔有率的情況,我們最終的方案是暫時忽略 錘子系統流覽器、 Chrome 原生流覽器 這部分不支援 自訂 scheme 自動喚起 App 的用戶。

●●●

從短信喚起 App 最終方案

綜合起來就是:

· 通過 Deep Links(iOS則是Universal Links),可以實現點擊短信連結直接喚起 App;

· 如果系統因為各種原因不支援 Deep Links,備選方案是 intent filter,不過會出彈框讓用戶選擇用哪個 App 打開連結;

· 如果用戶沒有選擇我們的 App 而是選擇了流覽器打開,則通過 自訂 scheme 嘗試喚起 App;

· 由於技術和成本問題,我們忽略不支援 自訂 scheme 的流覽器。

如下圖所示:

當然除了技術層面的,短信本身的穩定性到達率也很重要。網易雲短信,三網合一,驗證碼、運營短信、通知短信全能發,而且關鍵價格一樣。

以上由網易企業資訊化服務提供者,湖南領先網路科技整理發佈。

網易企業服務(qiye163.co)是網易憑藉其20年品牌優勢與經驗在企業郵箱的基礎上,為進一步佈局企業市場而打造的企業級產品矩陣,致力於提供一站式企業資訊化解決方案。湖南領先網路科技是網易企業產品授權經銷商,專業為企業提供網易企業郵箱、網易辦公套件等一站式企業資訊化專業解決方案。辦理網易企業郵箱及旗下企業產品相關業務,就找湖南領先網路科技。

// 小米 Chrome 原生流覽器

User-Agent:Mozilla/5.0 (Linux; Android 6.0.1; MI 3W Build/MMB29M) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/57.0.2987.108 Mobile Safari/537.36

// 錘子系統流覽器

User-Agent:Mozilla/5.0 (Linux; Android 5.1.1; YQ603 Build/LMY47V) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/46.0.2490.11 Mobile Safari/537.36

// 錘子 Chrome 原生流覽器

User-Agent:Mozilla/5.0 (Linux; Android 5.1.1; YQ603 Build/LMY47V) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/50.0.2661.89 Mobile Safari/537.36

可以看出小米流覽器是在 Chrome 原生流覽器的 UA 上增加了 XiaoMi/MiuiBrowser/8.9.5 這部分特徵碼。類似的,很多協力廠商流覽器都是在 Chrome 基礎上增加自己的特徵碼,換句話說 Chrome 原生流覽器 UA 沒有自己的特徵。

而錘子系統流覽器和 Chrome 原生流覽器 UA 幾乎一樣,這就使得判斷是否錘子系統流覽器、 Chrome 原生流覽器 變得異常困難,要想盡可能完美解決問題只能使用排除法。

排除法由於不可能排除所有非 Chrome 原生流覽器,可能會存在誤傷的可能。

經流覽器中轉喚起 App 總結:

要實現經流覽器中轉 自動 喚起 App,Android和 iOS 都可以通過 自訂 scheme 的方式,但 Android 的情況稍顯複雜,因為部分流覽器並不支援,必須換成 intent:// 協定的方式 手動 喚起。

考慮到流覽器判斷的難度,結合流覽器市場佔有率的情況,我們最終的方案是暫時忽略 錘子系統流覽器、 Chrome 原生流覽器 這部分不支援 自訂 scheme 自動喚起 App 的用戶。

●●●

從短信喚起 App 最終方案

綜合起來就是:

· 通過 Deep Links(iOS則是Universal Links),可以實現點擊短信連結直接喚起 App;

· 如果系統因為各種原因不支援 Deep Links,備選方案是 intent filter,不過會出彈框讓用戶選擇用哪個 App 打開連結;

· 如果用戶沒有選擇我們的 App 而是選擇了流覽器打開,則通過 自訂 scheme 嘗試喚起 App;

· 由於技術和成本問題,我們忽略不支援 自訂 scheme 的流覽器。

如下圖所示:

當然除了技術層面的,短信本身的穩定性到達率也很重要。網易雲短信,三網合一,驗證碼、運營短信、通知短信全能發,而且關鍵價格一樣。

以上由網易企業資訊化服務提供者,湖南領先網路科技整理發佈。

網易企業服務(qiye163.co)是網易憑藉其20年品牌優勢與經驗在企業郵箱的基礎上,為進一步佈局企業市場而打造的企業級產品矩陣,致力於提供一站式企業資訊化解決方案。湖南領先網路科技是網易企業產品授權經銷商,專業為企業提供網易企業郵箱、網易辦公套件等一站式企業資訊化專業解決方案。辦理網易企業郵箱及旗下企業產品相關業務,就找湖南領先網路科技。

Next Article
喜欢就按个赞吧!!!
点击关闭提示