iOS消息扩展如何直接切换主机应用程序



我有一个应用程序,我想添加消息扩展功能。

我认为该功能是如果用户选择一条消息,它会像谷歌地图一样直接切换我的主机应用程序。

我制作了一个MSMessage并设置了URL,并且消息具有具有标题和子标题的模板布局。

let message = MSMessage()
message.url = "http://blahblah?customScheme=myHostAppLaunchScheme"
let template = MSMessageTemplateLayout()
template.image = sampleImage
template.caption = "this is a caption"
template.subCaption = "this is a sub caption"
message.layout = template
guard let conversation = activeConversation else {
      print("blahblah")
      return
}
conversation.insert(message) { (error) in
      print("finish. error = (error == nil ? "nil"  : error!.localizedDescription)")
}

我写了一个代码扩展Context.open(url,completionHandler)

willBecomeActive(with conversation: MSConversation)
didReceive(_ message: MSMessage, conversation: MSConversation)

当然,我解析了 selectedMessage 的 URL。

但它没有我预期的奏效。

消息扩展会自动切换展开模式。

如果我使用

conversation.insertText("myHostAppLaunchScheme", nil)

但我不想要它,因为它无法添加模板:(

有没有直接将iMessage切换到主机应用程序的想法?

感谢您的任何想法。

我想

我找到了答案。

没有办法使用

conversation.insert(message, completionHandler)

我认为苹果音乐和谷歌地图正在使用

conversation.insertText("some url", completionHandler)

因为我在长按由苹果音乐或谷歌地图共享的消息后复制了一个 URL

然后我在代码中使用 URL

conversation.insertText("the URL", completionHandler)

他们做到了!!

相关内容

最新更新