網頁二維碼推廣App的實現


移動互聯網時代,一個APP的平均推廣成本早已經超過了10塊。而推廣通常分二類:

1、已經下載過的用戶,可以直接打開應用(一般人的手機上安裝的應用都非常多,要快速找到某個應用是很困難的事情,而且Android、IOS的搜索都做的很爛~ ~ );

2、未下載過的用戶,跳轉至下載頁;

 

手機設備又分為Android、iOS二大陣營,而原理基本上就是通過url scheme來實現:

 

瀏覽器中直接打開

Android:market://details?id=<package_name>

官方文檔: http://developer.android.com/distribute/tools/promote/linking.html  (需要翻牆),它會彈出一個中間頁,中間頁會顯示一個“安裝”或“打開”按鈕。中國的Android市場太過混亂,好在大家都支持Google官方的這個market協議,建議直接用這個。

 

如果是一個叫A的app想提示下載另外一個B的app,可以參考下面的代碼:

private String getGooglePlayStoreUrl(){
    String id = activity.getApplicationInfo().packageName; // current google play is   using package name as id

    PackageManager packageManager = activity.getApplicationContext().getPackageManager();
    Uri marketUri = Uri.parse("market://details?id=" + id);
    Intent marketIntent = new Intent(Intent.ACTION_VIEW).setData(marketUri);
    if (marketIntent.resolveActivity(packageManager) != null)
      return "market://details?id=" + id;
    else
      return "https://play.google.com/store/apps/details?id=" + id;
}
 
想對用戶更友好一點:如果已安裝就直接啟動應用(跳過上面的中間頁)或者未安裝時跳到下載界面,可以自己在應用中注冊一個自定義的url scheme,然后調用APP自定義的鏈接,在超過一定時間后(假設500毫秒后)沒有響應,就直接跳到下載界面。

iOS
1) 直接跳轉瀏覽器 https://itunes.apple.com/cn/app/idxxx 已安裝的話就會顯示“打開”,未安裝就會提示“下載”;
2) 直接使用APP自己注冊的url scheme(前提是你必須已經安裝了該APP);
 
iOS9中在應用A中想判斷應用B是否已經安裝/可直接啟動,需要在Info.plist中添加白名單,可自行搜索。
 
想對用戶更友好一點:如果已安裝就直接啟動應用(跳過上面的中間頁)或者未安裝時跳到下載界面,一樣也是使用延時來處理。原理與Android一樣,先調用自定義的url scheme,在超過一定時間,假定3S后沒有響應,就直接跳到下載頁。
 
 
微信掃一掃功能
單獨把微信拿出來,是因為做了很多限制,而且因為微信用戶群體太過龐大,不得不專門處理。
拿上面的market://details?id=<package_name>來講,你生成二維碼,微信根本就掃不出來。怎么辦呢?
 
 
那問題又來了,我怎么知道玩家是通過微信掃一掃過來的啊,很簡單。判斷HTTP請求的User-Agent
var ua = navigator.userAgent.toLowerCase();
if (/micromessenger/i.test(ua)) {
    //在微信中被打開的...
}

比如Java、Node.js也是類似了,獲取HTTP頭HTTP_USER_AGENT判斷一下即可

可參考:如何判斷微信內置瀏覽器>>

 

=====================================

總結,保守一點就是無論是否安裝過應用,瀏覽器直接訪問下面的地址,會打開中間頁(Android某個應用商店或iOS的App Store):

Android  market://details?id=<package_name>

iOS https://itunes.apple.com/cn/app/idxxx

但都會遇到被微信攔截的問題。想不被攔截就只能按官方的流程走下去。

 

如果想做到,安裝過應用就直接啟動,沒安裝就跳到下載頁,思路就是優先使用APP的自定義scheme來嘗試打開應用,在超過一定時間后(假設3S)就將網頁跳到下載頁(就算時間過短了,反正這個中間頁也有按鈕可以直接打開應用)。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM