ios - Swift 3 iMessage 扩展不打开 URL

标签 ios swift swift3 imessage ios-messages-extension

我正在创建一个 iOS 应用程序 iMessage 扩展。

根据 Example by Apple , 我根据提供的逻辑创建一条消息

guard let url: URL = URL(string: "http://www.google.com") else { return }

let message = composeMessage(url: url)
activeConversation?.insert(message, completionHandler: { [weak self] (error: Error?) in
    guard let error = error else { return }
    self?.presentAlert(error: error)        
})

还有

private func composeMessage(url: URL) -> MSMessage {
    let layout = MSMessageTemplateLayout()
    layout.caption = "caption"
    layout.subcaption = "subcaption"
    layout.trailingSubcaption = "trailing subcaption"

    let message = MSMessage()
    message.url = url
    message.layout = layout

    return message
}

private func presentAlert(error: Error) {
    let alertController: UIAlertController = UIAlertController(
        title: "Error",
        message: error.localizedDescription,
        preferredStyle: .alert
    )

    let cancelAction: UIAlertAction = UIAlertAction(
        title: "OK",
        style: .cancel,
        handler: nil
    )

    alertController.addAction(cancelAction)

    present(
        alertController,
        animated: true,
        completion: nil
    )
}

据我了解,发送消息后,点击后,Safari 浏览器应该会打开。

当我点击已发送的消息时,MessageViewController 屏幕出现在整个屏幕上,而无需打开 safari 或其他应用程序。

问题出在哪里?我怎样才能实现所需的功能?

最佳答案

我认为 safari 浏览器只能为 macOS 打开。这对我有用:

override func didSelectMessage(message: MSMessage, conversation: MSConversation) {

        if let message = conversation.selectedMessage {
            // message selected

            // Eg. open your app:
            let url = // your apps url
            self.extensionContext?.openURL(url, completionHandler: { (success: Bool) in

            })
        }
    }

关于ios - Swift 3 iMessage 扩展不打开 URL,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39351549/

相关文章:

ios - 在 ViewController 之间传递 NSManagedObject

swift - 如何根据特定设备的屏幕尺寸更改特定约束?

ios - Swift 类作为稍后实例化的参数

JSON Swift 解包 [""]

ios - 切换回 Root View Controller 时导航栏出现问题

ios - 单击注释时从 map View 进行转场

nsurlsession - Swift 3,未调用 URLSession dataTask completionHandler

ios - 图标及其颜色自动更新 | iOS |碳套件

ios - TableView Swift 3 中的不同单元格

ios - EKCalendarChooser 新日历