Ios 尝试使用通用链接设置重定向到应用程序,但未发生任何操作
因此,我的网站上有以下苹果应用程序网站关联,位于Ios 尝试使用通用链接设置重定向到应用程序,但未发生任何操作,ios,swift,Ios,Swift,因此,我的网站上有以下苹果应用程序网站关联,位于stage.domain.com/apple-app-site-association: { "applinks": { "apps": [], "details": [ { "appID": "TEAMID.application.id.goes.here", "paths": ["*"] } ] } } 我已将关联域设置为applinks:stage.do
stage.domain.com/apple-app-site-association
:
{
"applinks": {
"apps": [],
"details": [
{
"appID": "TEAMID.application.id.goes.here",
"paths": ["*"]
}
]
}
}
我已将关联域设置为applinks:stage.domain.com
但是,当我尝试在Safari中导航到stage.domain.com
时,它没有注册,我留在浏览器中。还有什么我需要做的吗?我知道我最终需要在应用程序中为各种页面设置路由,但这不是必要的要求,是吗?它应该在没有其他东西的情况下启动应用程序?还是我遗漏了什么
另外,我的恢复处理程序:
func application(_ application: UIApplication, continue userActivity: NSUserActivity, restorationHandler: @escaping ([Any]?) -> Void) -> Bool {
print("DEBUG GETS TO NSURL?")
guard userActivity.activityType == NSUserActivityTypeBrowsingWeb,
let url = userActivity.webpageURL
else
{return false}
print("DEBUG GETS TO URL")
return true
}
这两种调试条件都没有达到。您是否已经完成了此处的调试步骤: 我发现上面参考的诊断部分的第一步中链接的验证工具非常有用。它将验证您是否正确设置了应用程序关联文件,如果您没有设置,通常会提供一些指导 更新: 根据您在下面关于Safari中链接不起作用的评论,我建议验证您在测试设备上没有禁用该域的通用链接设置 具体而言:
- 如果用户打开一个通用链接并被带到应用程序,则状态栏右上角会有一个快捷方式,如果点击该快捷方式,则会将用户带到链接的web版本,并禁用打开应用程序的通用链接。要重新启用应用程序的通用链接,您可以将链接粘贴到应用程序(如Notes或Messages)中,长按该链接,然后选择“在…[您的应用程序]中打开”
- 另一种可能性是,Safari中的网页试图通过Javascript打开通用链接,或者用重定向包装。这两种方法都行不通
通常通用链接以
://
结尾,因此请尝试使用以下URL作为示例:
applinks://stage.domain.com
您是否在应用程序中尝试了以下代码:info.plist
CbundleUrlTypes
CbundleTypeRole
编辑
循环流化床锅炉方案
阶段
然后打开safari,键入“stage://”并按Go。它会将你重定向到你的应用程序。如果当你访问你的网站时,它会在页面顶部显示“通用链接”横幅,如下图所示:,那么你就做对了 如果您单击“打开”,它将打开应用程序。然后,如果您试图在通过横幅打开应用程序后单击指向您网站的链接,iOS应该保存您的首选项并直接打开应用程序,而不是带着横幅前往Safari
按照通用链接的工作方式,它不允许在未经用户同意的情况下通过链接打开应用程序。因此,在应用程序自动打开之前,用户必须至少授予一次权限。是的,我使用过它。它说我的权利没有设置,即使它们绝对是。它们被添加到Apple Developer中的我的应用程序ID以及我的关联域部分,在那里我有applinks:stage.domain.com,它目前在最新的应用程序版本中也很活跃。当我在电子邮件中单击它时,该应用程序工作正常。“但它在Safari中不起作用。”安德烈瓦莱桑德用一些额外的可能性更新了答案不,这似乎不起作用。电子邮件部分可以工作,就像在notes上单击它一样,但是尝试在Safari中单击链接并不会启动应用程序。好的,实际上,这是因为如果你在同一个域中执行此操作,它会在Safari中打开它,而不是在应用程序中。它会让用户选择一个提示,告诉他们返回应用程序。我不想那样。我以前尝试过URL方案。您的apple应用程序站点关联文件是否上载到HTTPS服务器的根目录?您确定吗?TomsiMac:~tom$curl 404错误-找不到页面…我尝试了url架构,但url删除了://chars。有解决办法吗?你确定吗?例如,看看这张图片:当你访问你的网站时,它是否会在页面顶部显示“通用链接”横幅?像这样:是的。我确实看到了那条横幅。为什么,这意味着什么?那么,你做得对。如果您单击“打开”,它将打开应用程序。然后,如果您试图在通过横幅打开应用程序后单击指向您网站的链接,iOS应保存您的首选项并直接打开应用程序,而不是带着横幅前往Safari。通用链接的工作方式是,未经用户同意,不允许通过链接打开应用程序。因此,在应用程序自动打开之前,用户必须至少给予一次权限。事实上,这不是工作原理。外部链接工作正常,内部链接不工作。
<key>CFBundleURLTypes</key>
<array>
<dict>
<key>CFBundleTypeRole</key>
<string>Editor</string>
<key>CFBundleURLSchemes</key>
<array>
<string>stage</string>
</array>
</dict>
</array>