Расширение сообщений iOS, как напрямую переключать хост-приложение
У меня есть приложение, и я хочу добавить функцию расширения сообщений.
Я думал, что если пользователь выбирает сообщение, он переключает мое главное приложение, например, на карту Google.
Я сделал 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, extensionHandler) в
willBecomeActive(with conversation: MSConversation)
didReceive(_ message: MSMessage, conversation: MSConversation)
конечно, я проанализировал URL выбранного сообщения.
но это не сработало, я ожидал.
переключатели расширения сообщений автоматически расширяют режим.
это работает, если я использовал
conversation.insertText("myHostAppLaunchScheme", nil)
но я не хочу, потому что он не может добавить шаблон:(
Есть ли идея, чтобы переключить iMessage на хост-приложение напрямую?
спасибо за любые идеи.
1 ответ
Я думаю, что нашел ответ.
нет никакого способа с использованием
conversation.insert(message, completionHandler)
я думаю, что Apple Music и Google Maps используют
conversation.insertText("some url", completionHandler)
потому что я скопировал URL после долгого нажатия на сообщение, которое разделяют Apple Music или Google Map
тогда я использую URL в моем коде
conversation.insertText("the URL", completionHandler)
это работает они сделали!!