我想在同一部手机上安装的两个应用程序之间进行通信。为了做到这一点,我阅读了许多官方文档,以了解我必须实现Custom URL Scheme。
在iOS 9之前,似乎我们必须在Info中添加一个URLType 并定义URL Scheme:“”。
但是在iOS 9之后,它改变了在Apps之间进行通信的方式。
网址方案示例在: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)
}
在My App B,我在Info.plist
中添加了一个网址名称iOSTest<key>LSApplicationQueriesSchemes</key>
<array>
<string>iOSTest</string>
</array>
当我在iPhone上安装两个应用程序进行测试时,它根本不起作用。
这是我的错误!
我的应用程序出了什么问题?
答案 0 :(得分:3)
您安装错误。调用canOpenURL
的应用是需要将自定义方案添加到LSApplicationQueriesSchemes
列表的应用。
由于应用A正在为canOpenURL
调用iIOSTest
,因此应用A需要将iOSTest
添加到LSApplicationQueriesSchemes
列表,而不是应用B.
应用B将是需要注册它才响应iOSTest
的应用,以便当其他应用调用openURL
并使用iOSTest
方案时,它会被打开。