iOS 消息扩展如何直接切换主机应用
iOS messages extension how to switch host app directly
我有一个应用程序,我想添加消息扩展功能。
我认为功能是如果用户选择一条消息,它会像 google 地图一样直接切换我的主机应用程序。
我创建了一个 MSMessage 并设置了 URL,该消息的模板布局包含标题和 sub-caption。
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)")
}
我在
中写了一个代码extensionContext.open(url, completionHandler)
willBecomeActive(with conversation: MSConversation)
didReceive(_ message: MSMessage, conversation: MSConversation)
当然,我解析了selectedMessage的URL。
但它没有像我预期的那样工作。
消息扩展自动切换扩展模式。
如果我使用它就有效
conversation.insertText("myHostAppLaunchScheme", nil)
但我不想要它,因为它不能添加模板:(
有没有办法直接将 iMessage 切换为托管应用程序?
感谢任何想法。
我想我找到了答案。
没办法用
conversation.insert(message, completionHandler)
我认为苹果音乐和 google 地图正在使用
conversation.insertText("some url", completionHandler)
因为我在长按 apple music 或 google map
分享的消息后复制了 URL
然后我在代码中使用 URL
conversation.insertText("the URL", completionHandler)
他们做到了!
我有一个应用程序,我想添加消息扩展功能。
我认为功能是如果用户选择一条消息,它会像 google 地图一样直接切换我的主机应用程序。
我创建了一个 MSMessage 并设置了 URL,该消息的模板布局包含标题和 sub-caption。
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)")
}
我在
中写了一个代码extensionContext.open(url, completionHandler)willBecomeActive(with conversation: MSConversation)
didReceive(_ message: MSMessage, conversation: MSConversation)
当然,我解析了selectedMessage的URL。
但它没有像我预期的那样工作。
消息扩展自动切换扩展模式。
如果我使用它就有效
conversation.insertText("myHostAppLaunchScheme", nil)
但我不想要它,因为它不能添加模板:(
有没有办法直接将 iMessage 切换为托管应用程序?
感谢任何想法。
我想我找到了答案。
没办法用
conversation.insert(message, completionHandler)
我认为苹果音乐和 google 地图正在使用
conversation.insertText("some url", completionHandler)
因为我在长按 apple music 或 google map
分享的消息后复制了 URL然后我在代码中使用 URL
conversation.insertText("the URL", completionHandler)
他们做到了!