iOS 14 canOpenURL

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了iOS 14 canOpenURL相关的知识,希望对你有一定的参考价值。

参考技术A 不知道是 bug 还是 ios 14 之后苹果的规定:
只有加到 info.plist -> LSApplicationQueriesSchemes 中的 scheme, 使用 canOpenURL , 才返回 true, 即使是 http 和 https 没加到 LSApplicationQueriesSchemes 也会返回 false.

整挺好! 贴心, 安全.

reference: canOpenURL returns false when I changed the default browser on iOS 14

无法使用 canOpenUrl 进行 InterApp 通信

【中文标题】无法使用 canOpenUrl 进行 InterApp 通信【英文标题】:Can't use canOpenUrl for InterApp communication 【发布时间】:2016-04-17 15:12:56 【问题描述】:

我想在同一部手机上安装的两个应用程序之间进行通信。为了做到这一点,我阅读了很多官方文档,了解到我必须实现一个Custom URL Scheme。

在iOS 9之前,好像我们得在Info中加个URLType 并定义 URL Scheme : " "。

但在 iOS 9 之后,它改变了 App 之间的通信方式。

url 方案示例在:Querying URL Schemes with canOpenURL 中讨论。

我的应用代码如下:

@IBAction func sender(sender: AnyObject) 

    let ourapplication : UIApplication = UIApplication.sharedApplication()
    let ourpath : String = "iOSTest://"
        //.stringByAppendingString(urlEncodedText)
    let oururl : NSURL = NSURL(string: ourpath)!

    ourapplication.canOpenURL(oururl)
 

在我的 App B 中,我在 Info.plist 中添加了一个 URL 名称 iOSTest

<key>LSApplicationQueriesSchemes</key>
<array>
    <string>iOSTest</string>
</array>

当我在我的 iPhone 上安装这两个 App 进行测试时,它根本不起作用。

这是我的错误!

我的应用有什么问题?

【问题讨论】:

【参考方案1】:

您的设置不正确。调用canOpenURL的应用是需要将自定义方案添加到LSApplicationQueriesSchemes列表的应用。

由于 App A 为 iIOSTest 调用 canOpenURL,因此需要将 iOSTest 添加到 LSApplicationQueriesSchemes 列表中的是 App A,而不是 App B。

应用 B 将是需要注册以响应 iOSTest 的应用,以便当其他应用使用 iOSTest 的方案调用 openURL 时将打开它。

【讨论】:

是的,完全正确。只需交换LSApplicationQueriesSchemes 你在问什么?如何在 App B 中注册自定义方案或您必须在 App B 中编写什么代码?无论哪种方式,这是一个完全不同的问题。文档和这里的许多其他问题都涵盖了所有内容。这个问题应该被关闭,因为它已经解决了。如果您在其他问题上需要帮助,请发布针对该问题的另一个问题。 你现在有什么问题? 当我将 LSApplicationQueriesSchemes 交换到 App A 时,单击 canOpenURL 按钮仍然不起作用。但是当我将 canOpenURL 更改为 openUrl 时,它起作用了!!!!我不明白为什么 canOpenURL 不起作用? 定义“不起作用”。发生什么了?你得到什么信息?

以上是关于iOS 14 canOpenURL的主要内容,如果未能解决你的问题,请参考以下文章

iOS 14.4测试版发布,苹果官宣iOS 14安装率!

iOS 14 Filza 发布丨iOS 14 越狱也不远了!

iOS 14 Filza 发布丨iOS 14 越狱也不远了!

iOS 14.1正式版更新发布,14.2新测试版也来了~

iOS 14.1正式版更新发布,14.2新测试版也来了~

iOS 14测试版如何提前安装试用?