多個客戶端共用同一條拉起鏈接 ,如何配置 Universal Link iOS App

說明

正常情況下,一個App 對應一個Universal Link。也可以通過path 不一樣來區分,比如https://host/path1
活久見的事情還是會發生的,公司要求APP Store,global市場的app,china市場的app要公用同一條Universal Link。
實際上也是合情合理的,畢竟比較少人裝同一套代碼的兩個App。

問題

在支持通用鏈接的兩個不同應用程序上支持同一域。

我有一個支持通用鏈接的應用程序,當前在應用程序商店中。

假設它支持www.example.com域,因此可以輕鬆打開通用鏈接。我們將在相關域中提供applinks:www.example.com

現在說說我是否要發佈另一個應用程序,它也支持相同的域。現在,iOS將如何通過通用鏈接來區分打開哪個應用程序。

解決

爲了Universal Links在兩個不同的應用程序上支持單個域,您需要在現有apple-app-site-association文件中進行更改,網址爲https:// {domain} / apple-app-site-association

對於單應用程序支持
對於單個應用程序支持,它看起來像這樣

{
    "applinks": {
        "apps": [],
        "details": [
            {
                "appID": "1234ABCDE.com.domain.myapp",
                "paths": ["*"]
            }
        ]
    }
}

對於多應用程序支持
對於多個應用程序的支持,你需要添加一個鍵值對details數組applinks中apple-app-site-association。看起來像這樣

{
    "applinks": {
        "apps": [],
        "details": [
            {
                "appID": "1234ABCDE.com.domain.myApp",
                "paths": ["*"]
            },
            {
                "appID": "1234ABCDE.com.domain.mySecondApp",
                "paths": ["*"]
            },
            {
                "appID": "1234ABCDE.com.domain.myThirdApp",
                "paths": ["*"]
            }
        ]
    }
}

apple-app-site-association文件的一般格式
該文件如下所示:

{
"applinks": {
    "apps": [ ],
    "details": [
        {
            "appID": "{app_prefix}.{app_identifier}",
            "paths": [ "/path/to/content", "/path/to/other/*", "NOT /path/to/exclude" ]
        },
        {
            "appID": "TeamID.BundleID2",
            "paths": [ "*" ]
        }
    ]
}
}

參考文獻
如何在iOS App和設置服務器中支持通用鏈接?

配置Universal link 請參考教程

拉起客戶端 Universal Links & Scheme Open App iOS(Deep Link)

參考

https://stackoverflow.com/questions/35271022/supporting-same-domain-on-two-different-apps-supporting-universal-links

https://stackoverflow.com/questions/35609667/how-to-support-universal-links-in-ios-app-and-setup-server-for-it

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章