我在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无法打开页面,因为无法找到服务器
一切都被检查,我做了教程,但仍然没有任何反应!
CFBundleURLSchemes
字段应填写方案,而不是网址。方案在url之前告诉浏览器要采取什么操作。例如,https://
是一种告诉浏览器建立安全连接的方案。 Apple URI方案只是告诉浏览器您希望应用程序处理带有自定义方案的URL(即customScheme://
)。 HTTP和HTTPS是为iOS上的Safari保留的。允许customScheme://example/path
打开您的应用程序。只需将该字段更改为customScheme
即可。
如果您想注册正常的网址来处理您的链接,您将需要整合Universal Links。这些可能是一个痛苦的设置所以我建议使用Branch iOS SDK。它们的深层链接是免费的,并在Universal Links之上提供更多功能。
确保在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/