我已经根据官方Flutter指南完成了iOS通用链接的设置。包括将 AASA 文件托管在我的服务器中
/.well-known/apple-app-site-association
:
{
"applinks": {
"apps": [],
"details": [
{
"appID": "ABC123.com.test.test",
"paths": [
"/test/*"
]
}
]
}
}
因此,如果我从 Notes 或 Slack 应用程序中单击我的 URL,它就可以工作。
或者如果我在终端中运行:
xcrun simctl openurl booted https://<domain.com>/test
例如,
<domain.com>/test?response_type=token&client_id=abc123...
当我单击按钮时,我的网络应用程序中有几个重定向,在某些时候它会使用
/test
路径调用所述 URL。所以我的问题是它不会通过该重定向自动打开应用程序。
此外,只有在 Safari 浏览器中,才会出现显示
Open in the Test app
的横幅。
我知道如果我在浏览器地址栏中手动输入该 URL 是行不通的。
但是通用链接的本质是只有在单击时才起作用还是我错过了任何东西?
经过广泛研究,我发现要使通用链接发挥作用,需要用户执行明确的操作。
当用户在 Safari 中浏览您的网站并点击同一域中的通用链接时,系统会在 Safari 中打开该链接,尊重用户最有可能在浏览器中继续操作的意图。如果用户点击不同域中的通用链接,系统会在您的应用程序中打开该链接。
没有任何效果:
因此,我创建了一个带有按钮的登陆页面,单击该按钮将打开我的应用程序。
参考资料: