Swift 3 iMessage Extension无法打开URL [英] Swift 3 iMessage Extension doesn't open URL

查看:245
本文介绍了Swift 3 iMessage Extension无法打开URL的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

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

I am creating an iOS Application iMessage Extension.

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

According to Example by Apple, I creating a message according to provided logic

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浏览器。

As far as I understand, after message is sent, on a click, Safari browser should be opened.

当我点击一个发送消息, MessageViewController 屏幕在整个屏幕上进行,无需打开safari或其他应用程序。

When I click on a sent message, MessageViewController screen takes place in whole screen, without opening safari or another app.

问题出在哪里?如何实现所需的功能?

Where is the problem? How can I achieve desired functionality?

推荐答案

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

I think safari Browser only opens for macOS. This worked for me:

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

            })
        }
    }

这篇关于Swift 3 iMessage Extension无法打开URL的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆