我正在创建一个 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/