我想在同一部手机上安装的两个Apps之间进行通信。为此,我阅读了许多官方文档,以了解必须实现Custom URL Scheme。
在iOS 9之前,似乎我们必须在Info中添加URLType
并定义URL Scheme:“”。
但是在iOS 9之后,它改变了Apps之间的通信方式。
url方案示例在Querying URL Schemes with canOpenURL中讨论。
我的应用A代码如下:
@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)
}
在我的应用程序B中,我在Info.plist中添加一个URL名称iOSTest。
<key>LSApplicationQueriesSchemes</key>
<array>
<string>iOSTest</string>
</array>
当我在iPhone上安装两个App进行测试时,它根本无法工作。
这是我的错误!
我的应用程序有什么问题?
最佳答案
您没有正确设置它。调用canOpenURL
的应用程序是需要将自定义方案添加到LSApplicationQueriesSchemes
列表的应用程序。
由于应用程序A正在为canOpenURL
调用iIOSTest
,因此应用程序A需要将iOSTest
添加到LSApplicationQueriesSchemes
列表中,而不是应用程序B。
App B是需要注册的应用程序,它必须响应iOSTest
,以便在其他一些应用程序使用openURL
方案调用iOSTest
时将其打开。
关于ios - 无法使用canOpenUrl进行InterApp通信,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/36678305/