【问题标题】:How to open a url in safari in ios9如何在ios9的safari中打开一个url
【发布时间】:2015-12-19 04:48:54
【问题描述】:

我已使用以下代码将用户重定向到 Facebook 页面。

NSURL *webURL = [NSURL URLWithString:@"https://m.facebook.com/icc"];
[[UIApplication sharedApplication] canOpenURL:webURL];

更新到ios9后,上面的代码不行了。

我在 plist 文件中添加了以下块。但不工作。

<key>LSApplicationQueriesSchemes</key>
<array>
    <string>fbapi</string>
    <string>fb</string>
    <string>fbauth2</string>
    <string>fbshareextension</string>
    <string>fb-messenger-api</string>
    <string>twitter</string>
    <string>whatsapp</string>
    <string>wechat</string>
    <string>line</string>
    <string>instagram</string>
    <string>kakaotalk</string>
    <string>mqq</string>
    <string>vk</string>
    <string>mqq</string>
</array>

我错过了什么吗?

【问题讨论】:

    标签: facebook cocoa-touch safari ios9 url-scheme


    【解决方案1】:

    有两种可用的URL 相关方法。 canOpenURLopenURL

    canOpenURL 在检查设备上是否安装了任何知道如何处理给定 URL 的应用程序后返回是或否答案。

    openURL 用于实际启动 URL,通常会离开应用程序并在另一个应用程序中打开 URL。

    在您的情况下,我尝试了相同的代码,它对我来说工作正常,我的意思是在canOpenURL 它返回YES 的情况下,当我调用openURL 它打开safari 并且是的它与您相同做了。

    对于遇到相同问题的所有开发人员,解决方案是将您的应用可能需要调用的所有URL 方案中的whitelist 添加到Info.plist 中。要添加的键是LSApplicationQueriesSchemes,它的值是一个包含所有URL 方案的数组。

    【讨论】:

    • 我在 plist 文件中添加了LSApplicationQueriesSchemes。但我仍然面临这个问题。我已经添加了有问题的方案列表。
    • 请确认您是否在尝试openURL?因为我在这种情况下定义了不需要添加LSApplicationQueriesSchemes 它也可以使用。而canOpenURL 只返回 bool 值,它将显示 URL 的方案是否可以被设备上安装的某些应用程序处理。
    猜你喜欢
    • 2015-09-30
    • 2014-04-25
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-02-26
    • 1970-01-01
    • 1970-01-01
    • 2011-09-04
    相关资源
    最近更新 更多