对info.plist中定义的Deep-link没有反应

问题描述 投票:1回答:2

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

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

ios deep-linking url-scheme deeplink
2个回答
2
投票

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

如果您想注册正常的网址来处理您的链接,您将需要整合Universal Links。这些可能是一个痛苦的设置所以我建议使用Branch iOS SDK。它们的深层链接是免费的,并在Universal Links之上提供更多功能。


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/

© www.soinside.com 2019 - 2024. All rights reserved.