我在 info.plist 中定义了深层链接,如下所示:
<key>CFBundleURLTypes</key>
<array>
<dict>
<key>CFBundleURLName</key>
<string>com.myapp.customer</string>
<key>CFBundleURLSchemes</key>
<array>
<string>myapp.com</string>
</array>
</dict>
</array>
但在Safari中,此链接没有任何反应,此消息显示:
Safari无法打开页面,因为无法找到服务器
所有东西都经过检查,我做了教程,但仍然没有发生任何事情!
答案 0 :(得分:2)
CFBundleURLSchemes
字段应填充方案,而不是网址。方案在url之前告诉浏览器要采取什么操作。例如,https://
是一种告诉浏览器建立安全连接的方案。 Apple URI方案只是告诉浏览器您希望自定义方案(即customScheme://
)的网址由您的应用处理。 HTTP和HTTPS是为iOS上的Safari保留的。允许customScheme://example/path
打开您的应用。只需将该字段更改为customScheme
即可。
如果您想注册普通网址来处理链接,则必须整合Universal Links。这些可能很难设置,所以我建议使用Branch iOS SDK。它们的深层链接是免费的,并且在Universal Links之上提供了更多功能。
答案 1 :(得分:0)
确保在AppDelegate.Swift中有此方法
func application(_ app: UIApplication, open url: URL, options: [UIApplicationOpenURLOptionsKey : Any] = [:]) -> Bool {
if url.scheme != nil && url.scheme!.hasPrefix(""){
//Deep linking link should be like this : 'yourAppScheme'
if(url.host?.contains("page"))!{
if(url.path.contains("/yourhoststring")){
// do some work
}
}
}
//default
return false
}
您的网址方案应如下所示: [方案]:// [主机] / [路径]
以下是详细教程的链接: http://blog.originate.com/blog/2014/04/22/deeplinking-in-ios/