4

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サファリや別のアプリを開かずに、画面全体に画面が表示されます。

問題はどこだ?必要な機能を実現するにはどうすればよいですか?

4

6 に答える 6

2

Safari Browser は 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

            })
        }
    }
于 2016-09-06T20:56:22.787 に答える
-1
  1. didSelectMessage:conversation の openURL: extensionContext を使用して

  2. ホストの AppDelegate で URL スキームを処理する

于 2016-10-06T14:13:35.140 に答える