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


簡述

微信中通過頁面直接打開app分為安卓版和IOS版,兩個的實現方式是完全不同的。

安卓版實現:使用騰訊的應用寶,只要配置了“微下載”之后,打開鏈接騰訊會幫你判斷本地是否已經安裝了app,如果本地安裝就直接打開,沒有安裝的話就是騰訊微下載的頁面進行app下載,當然微下載的頁面騰訊提供了幾個模板,可以自己選擇和修改。

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

  1.騰訊深度合作的公司,微信可以幫你打開app;

  2.使用IOS9+的新功能“Universal Links”(通用鏈接);

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

 

效果展示

 

 

實現步驟

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

創建“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,其他連接時候則為正常顯示,這個地址可以配置成多個,也可以直接寫*;

 

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)突然點擊無效的解決方案》

 

 

如果覺得本文對你有幫助,請點擊右下角“推薦”按鈕,謝謝!


免責聲明!

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



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