我为 Swift 应用程序设置了一个自定义 URL。我想在另一个应用的按钮操作中使用此 URL 进行深层链接。我试过UIApplication.shared.open(NSURL(string: "redirectToApp://Testapp/startPage")! as URL, options: [:], completionHandler: nil)
但是,它不起作用。有什么建议吗?
更新:
redirectToApp://Testapp/startPage
从 Safari 浏览器打开应用程序。
谢谢!
确保编写带有错误检查/处理的代码,以便找出不起作用的内容。
像这样尝试:
if let url = URL(string: "redirectToApp://Testapp/startPage")
{
if UIApplication.shared.canOpenURL(url)
{
UIApplication.shared.open(url, options: [:], completionHandler: {
(success) in
if (success)
{
print("OPENED (url): (success)")
}
else
{
print("FAILED to open (url)")
}
})
}
else
{
print("CANNOT open (url)")
}
}
首先,你不应该在 Swift3 中使用 NSURL,你应该使用原生的 Swift 版本,URL。在iOS9+上,您还必须将LSApplicationQueryScheme条目添加到Info.plist文件中,以便能够使用深层链接打开应用程序。
例如,如果您想打开优步应用,您必须执行以下操作: 从代码UIApplication.shared.open(URL(string: "uber://)!).
并将以下行添加到 Info.plist 文件中:
<key>LSApplicationQueriesSchemes</key>
<array>
<string>uber</string>
</array>