Mai*_*ize 3 objective-c imessage swift ios-extensions ios10
我试过了[self.extensionContext openURL:completion],但我的应用程序崩溃了.我听说有些扩展无法使用此方法,可以使用iMessage扩展吗?
顺便说一句,主持应用程序可以激活其iMessage扩展吗?
共享扩展和动作扩展不适用于应用程序启动器.
应用扩展程序与其包含应用程序之间没有直接通信; 通常,包含的应用程序在运行包含的扩展时甚至不运行.包含应用和主机应用的应用扩展程序根本不进行通信.
扩展程序显示用户界面,执行一些工作,并且,如果适合扩展程序的目的,则将数据返回给主机.
应用扩展程序与其包含的应用程序之间的可用交互有限."今日"窗口小部件(并且没有其他应用程序扩展类型)可以通过调用类的openURL:completionHandler:方法来要求系统打开其包含的应用程序NSExtensionContext."
键盘扩展的工作解决方案(在iOS 9.2上测试).
此类别添加了访问隐藏 sharedApplication对象的特殊方法,然后调用openURL:它.(当然,你必须使用openURL:你的应用程序方案的方法.)
// Valentin Shergin
extension UIInputViewController {
func openURL(url: NSURL) -> Bool {
do {
let application = try self.sharedApplication()
return application.performSelector("openURL:", withObject: url) != nil
}
catch {
return false
}
}
func sharedApplication() throws -> UIApplication {
var responder: UIResponder? = self
while responder != nil {
if let application = responder as? UIApplication {
return application
}
responder = responder?.nextResponder()
}
throw NSError(domain: "UIInputViewController+sharedApplication.swift", code: 1, userInfo: nil)
}
}
Run Code Online (Sandbox Code Playgroud)