iOS:Universal link始终打开应用程序

iOS:Universal link始终打开应用程序,ios,ios-universal-links,Ios,Ios Universal Links,服务器上与JSON关联的apple应用程序站点如下所示: { "applinks": { "apps": [], "details": { "TEAM_AND_BUNDLE_ID": { "paths": [ "*" ] } } } } 我希望调用方法func应用程序(applic

服务器上与JSON关联的apple应用程序站点如下所示:

{
    "applinks": {
        "apps": [],
        "details": {
            "TEAM_AND_BUNDLE_ID": {
                "paths": [
                    "*"
                ]
            }
        }
    }
}
我希望调用方法
func应用程序(application:UIApplication,continue userActivity:NSUserActivity,restorationHandler:@escaping([Any]?)->Void)->Bool
,这样我就可以确定是否应该实际打开应用程序(对于调用myurl.com,为true;对于仅调用myurl.com,为false)

但不调用appdelegate方法,只打开应用程序。


最糟糕的解决方案是将path组件放入JSON中,但据我所知,JSON只在安装应用程序时下载,因此JSON中的任何更改都不会被考虑在内

这是正确的行为。如果点击了符合
苹果应用程序站点关联
文件中标准的URL,您的应用程序将始终启动。您无法在
继续用户活动中控制它

安装应用程序时下载的
苹果应用程序站点关联
文件是正确的。它将通过应用商店重新下载更新,这意味着要添加新路径并确保所有用户都拥有这些路径,您通常需要发布应用更新

排除站点根路径的正确方法是将您的
apple app站点关联文件格式化如下:

{
    "applinks": {
        "apps": [],
        "details": {
            "TEAM_AND_BUNDLE_ID": {
                "paths": [
                    "NOT /",
                    "*"
                ]
            }
        }
    }
}
/
只匹配站点的根目录,
*
匹配整个站点(包括根目录)。这是因为iOS会按顺序评估规则,并在找到匹配项后停止

在不需要不断更新应用程序的情况下,处理此问题的更好方法是使用托管的深度链接服务,如(完全公开:我在分支团队中)或Firebase动态链接