ios - 使用 IntentsUI 扩展中的 URL 打开应用程序

标签 ios swift siri sirikit sirishortcuts

点击 INUIHostedViewControlling View Controller 后,有没有办法向应用程序发送一些参数/URL?

例如在 Widget 扩展中有:

self.extensionContext?.open(cardURL, completionHandler: nil)

最佳答案

似乎某些扩展类型在使用 extensionContext 时受到更多限制。我在键盘扩展上遇到了同样的问题。这可能有点 hacky,但下面的代码对我有用。

func openUrl(url: URL?) {
    let selector = sel_registerName("openURL:")
    var responder = self as UIResponder?
    while let r = responder, !r.responds(to: selector) {
        responder = r.next
    }
    _ = responder?.perform(selector, with: url)
}

func canOpenUrl(url: URL?) -> Bool {
    let selector = sel_registerName("canOpenURL:")
    var responder = self as UIResponder?
    while let r = responder, !r.responds(to: selector) {
        responder = r.next
    }
    return (responder!.perform(selector, with: url) != nil)
}

https://stackoverflow.com/a/44694703/2064473 提议

关于ios - 使用 IntentsUI 扩展中的 URL 打开应用程序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53978183/

相关文章:

Swift:在没有 switch 语句的情况下打开枚举

ios - 用 nil var 初始化惰性 var 是否安全(或良好的编程风格)?

ios - 如果部署目标低于 iOS 7,状态栏样式的轻内容?

ios - 在 iOS 中创建多步注册

macos - 使 `say` 终端实用程序和 NSSpeechSynthesizer 与 Siri 语音一起使用

ios - 如何定义 Siri 意图参数关键字的同义词?

ios - 如何正确实现 siri 快捷方式

ios - iOS-快速创建未签名的字符

ios - 自定义 Swift 框架不公开类

ios - 可选类型 'NSIndexPath?' 的值未展开;您是要使用 '!' 还是 '?' ?