J'ajoute une cible iMessage extension
à mon application. L'extension est censée envoyer un message avec un attribut url
. Le comportement que j'attends lorsqu'un utilisateur touche le message est d'ouvrir le navigateur en utilisant l'attribut url
du message.ios 11 imessage extension message.url n'ouvre pas le safari
J'ai un bouton dans mon messageView
qui exécute ce code:
@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)
}
Si je touche le message, il élargit le MessageViewController
Je puis ajouté ceci:
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)
}
}
Et maintenant, quand je touche le message, il ouvre mon application principale mais toujours pas mon navigateur.
Je l'ai vu sur another post (où je ne peux pas commenter, donc j'ai ouvert ce post) qu'il est impossible d'ouvrir en Safari
mais j'ai un news app qui insère des liens vers des articles et permet en un clic sur le message pour ouvrir la article dans une fenêtre de navigateur, alors que l'application est installée. Donc, quelqu'un peut s'il vous plaît dire comment je peux procéder à forcer l'ouverture du lien dans une fenêtre de navigateur?
Merci beaucoup.
Vous pouvez utiliser un 'SFSafariViewController'. Comme le signale l'autre poste, vous ne pouvez pas expulser les utilisateurs vers Safari à partir d'une extension de messages. – beyowulf
Merci pour votre réponse. J'aurais considéré la réponse dans l'autre poste si je n'avais pas cette application de nouvelles qui ouvre une fenêtre dans le navigateur. – radar