Supporting same domain on two different apps supporting universal links..?

狂风中的少年 提交于 2019-11-29 13:59:27

问题


I have an application which supports universal links and it is currently in the app store.

Say it supports the domain www.example.com and thus universal links can be easily opened via this. We will have applinks:www.example.com in associated domains.

Now say if I want to release another app and it also supports the same domain. Now how will iOS distinguish which app to open via universal links..?


回答1:


In order to supporting Universal Links with single domain on two different apps you need to make changes in your existing apple-app-site-association file, at https://{domain}/apple-app-site-association.

For Single App Support

For single application support it's look like this

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

For Multiple App Support

For multiple application support, you need add one more key-value pair in details array of applinks in apple-app-site-association. It's look like this

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

General Format of apple-app-site-association file

The file looks like this:

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

References

How to support Universal Links in iOS App and setup server for it?




回答2:


I found the solution, its pretty simple though. My problem was that my first app was supporting all the pages by stating

"*" in the paths section of apple-app-site-association file. Now all I have to do is add NOT in front of one of the paths which I wanted my second app to handle.

like "NOT /cabs". I haven't tested it yet if this works or not. I will post an update as soon as I am done with it.




回答3:


Apple App Site Association file example

{
    "applinks": {
        "apps": [],
        "details": [{
            "appID": "D3KQX62K1A.com.example.photoapp",
            "paths": ["/albums"]
            },
            {
            "appID": "D3KQX62K1A.com.example.videoapp",
            "paths": ["/videos"]
        }]
    }
}

Important: The order of the dictionaries in the array determines the order the system follows when looking for a match. The first match wins, allowing you to designate one app to handle specified paths within your website, and another app to handle the rest.

References: https://developer.apple.com/documentation/uikit/core_app/allowing_apps_and_websites_to_link_to_your_content/enabling_universal_links



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

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!