微信中經過頁面(H5)直接打開本地app的解決方案

簡述

微信中經過頁面直接打開app分爲安卓版和IOS版,兩個的實現方式是徹底不一樣的。html

安卓版實現:使用騰訊的應用寶,只要配置了「微下載」以後,打開連接騰訊會幫你判斷本地是否已經安裝了app,若是本地安裝就直接打開,沒有安裝的話就是騰訊微下載的頁面進行app下載,固然微下載的頁面騰訊提供了幾個模板,能夠本身選擇和修改。ios

IOS實現:ios像直接點擊連接打開本地app就難了,有兩種方式可供咱們選擇:服務器

  1.騰訊深度合做的公司,微信能夠幫你打開app;微信

  2.使用IOS9+的新功能「Universal Links」(通用連接);app

很顯然,第二種方式更適合咱們普通的公司。dom

 

效果展現

 

 

實現步驟

1.配置https(必須是https)網站支持;ide

建立「apple-app-site-association」文件,注意不帶後綴,放到網站根目錄,確保可使用:https://xxx.xxx.xxx/apple-app-site-association直接能夠訪問,apple-app-site-association文件內容以下:測試

{
    "applinks": {
        "apps": [],
        "details": [
            {
                "appID": "*****.com.gangguwang.yewugo",
                "paths": [ "/app/*" ]
            }
        ]
    }
}

其中appId是你的Prefix + ID,如圖:網站

 

paths爲你連接攔截的地址,好比我上面填寫的是「/app/*」,就是當我訪問https://xxx.xxxx.xxx/app/x的時候,會打開本地app,其餘鏈接時候則爲正常顯示,這個地址能夠配置成多個,也能夠直接寫*;ui

 

2.配置蘋果證書,開啓「Associated Domains」,以下圖:

Identifiers - App IDs –Edit 而後開啓打鉤 Associated Domains 後保存,配置地址:https://developer.apple.com/account/ios/identifier/bundle

 

3.配置你的App的Universal Links(通用連接)

若是你是普通的ios項目的的話,配置以下:項目 targets->Capabilities->Associated Domains,如圖填寫你的連接域名

域名的格式必須爲:applinks:你的域名(ex:applinks:www.domain.com),能夠配置多個;

若是你是Xamarin項目的話,須要選擇Entitlements.plist配置關聯域,如圖:

 

這樣配置完以後,打包便可測試你的應用咯。

官方配置文件:https://developer.apple.com/library/content/documentation/General/Conceptual/AppSearch/UniversalLinks.html#//apple_ref/doc/uid/TP40016308-CH12-SW2

 

擴展知識(關於Xamarin)

若是你要處理連接打開本地app並跳轉到相應的詳情頁的話,須要這樣實現:

1.在你的xxx.iOS項目打開「AppDelegate.cs」文件;

2.重寫方法,代碼以下:

 

public override bool ContinueUserActivity(UIApplication application, NSUserActivity userActivity, UIApplicationRestorationHandler completionHandler)
{
    if (userActivity.ActivityType == NSUserActivityType.BrowsingWeb)
    {
        string url = userActivity.WebPageUrl.ToString(); //全地址
        if (!string.IsNullOrEmpty(url))
        {
            //你的業務處理
        }
    }
    return true;
}

參考文檔:https://components.xamarin.com/gettingstarted/googleiosappindexing

注意事項

1.配置的網站必須是https,不能爲http;

2.[重要]展現地址和打開的地址不能在一個域名下(做者測試發現放在同一服務器下都不行),好比展現頁的地址是https://a.domain.com/?id=10,打開的若是是https://a.domain.com/app/?id=10,系統默認是打開頁面,而不是觸發通用連接打開app;

3.[重要]配置玩證書以後須要更新證書,才能內部打包和提測上傳成功;

4.通用連接可被屏蔽,點擊右上角配置的連接以後,通用連接就失效了,解決方案詳見:《iOS通用連接(Universal Links)忽然點擊無效的解決方案》

 

 

若是以爲本文對你有幫助,請點擊右下角「推薦」按鈕,謝謝!

相關文章
相關標籤/搜索