私はiOSアプリケーションiMessage Extensionを作成しています。 Example by AppleによればSwift 3 iMessage ExtensionはURLを開けません
、私は私の知る限り理解するように、メッセージが送信された後に提供される論理
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ブラウザが開きます。
送信したメッセージをクリックすると、Safariや他のアプリを開かずに画面全体でMessageViewController
の画面が表示されます。
問題はどこですか?どのようにして目的の機能を達成できますか?
私は、 'extensionContext?.openURL(url、completionHandler:nil)'を何も成功させることなく呼び出してみました。少なくともiOS 10の場合。 –
このコードブロックを使用してディープリンクURLを開いていますが、self.extensionContext?open(URLとしてURL、completionHandler: (成功:Bool)は にあります) –