0
我要添加一個iMessage extension
目標到我的應用程序。該擴展應該發送具有url
屬性的消息。當用戶觸摸消息時,我期望的行爲是使用消息的url
屬性打開瀏覽器。ios 11 imessage擴展message.url不會打開safari
我在messageView
一個按鈕,執行此代碼:
@IBAction func labelButton(_ sender: Any) {
let layout = MSMessageTemplateLayout()
layout.imageTitle = "iMessage Extension"
layout.caption = "Hello world!"
layout.subcaption = "Test sub"
guard let url: URL = URL(string: "https://google.com") else { return }
let message = MSMessage()
message.layout = layout
message.summaryText = "Sent Hello World message"
message.url = url
activeConversation?.insert(message, completionHandler: nil)
}
如果我觸摸消息,它擴展了MessageViewController
然後我加入了這一點:
override func didSelect(_ message: MSMessage, conversation: MSConversation) {
if let message = conversation.selectedMessage {
// message selected
// Eg. open your app:
self.extensionContext?.open(message.url!, completionHandler: nil)
}
}
而現在,當我觸摸郵件時,它會打開我的主應用程序,但仍然不是我的瀏覽器。
我看到的another post(這裏我不能評論,於是我開了這個帖子),這是不可能的Safari
打開,但我有一個news app這將插入的文章鏈接,並允許與該消息的點擊打開文章在瀏覽器窗口中,而應用程序已安裝。
那麼,有人可以告訴我如何繼續強制在瀏覽器窗口中打開鏈接?
非常感謝。
您可以使用'SFSafariViewController'。正如另一篇帖子所指出的,你不能將用戶從消息擴展中踢出Safari。 – beyowulf
感謝您的回答。如果我沒有在瀏覽器中打開窗口的新聞應用程序,我會在其他帖子中考慮答案。 – radar