移動互聯網時代,一個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;
}
iOS
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)就將網頁跳到下載頁(就算時間過短了,反正這個中間頁也有按鈕可以直接打開應用)。
