1

我在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 无法打开页面,因为找不到服务器

一切都经过检查,我按照教程做了,但仍然没有任何反应!

4

2 回答 2

2

CFBundleURLSchemes字段应填写方案,而不是网址。Schemes 在 url 之前告诉浏览器要采取什么行动。例如,https://是一种告诉浏览器建立安全连接的方案。Apple URI 方案只是您告诉浏览器您希望customScheme://您的应用程序处理具有您的自定义方案(即)的 URL。HTTP 和 HTTPS 为 iOS 上的 Safari 保留。允许customScheme://example/path打开您的应用程序。只需将该字段更改为customScheme.

如果您想注册普通的 Web URL 来处理您的链接,则必须集成Universal Links。这些设置起来很麻烦,所以我建议使用Branch iOS SDK。他们的深度链接是免费的,并在通用链接之上提供更多功能。

于 2018-01-08T17:23:40.717 回答
1

确保你在 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
}

你的 URL 方案应该是这样的: [scheme]://[host]/[path]

这是详细教程的链接:http: //blog.originate.com/blog/2014/04/22/deeplinking-in-ios/

于 2018-01-06T10:17:40.407 回答