Выберите, какие действия общего доступа получить какой контент с UIActivityViewController - PullRequest
0 голосов
/ 22 февраля 2019

В настоящее время я использую UIActivityViewController для предоставления URL-адреса другим приложениям.Эта часть отлично работает.

Но когда я делюсь с такими приложениями, как iMessage, Whatsapp или Mail.Я хотел бы добавить строку.

Пример:

Совместное использование -> airdrop: https://www.google.com

Совместное использование -> iMessage: "Привет, зацените этот крутой сайт: https://www.google.com"

Я попытался сделать это, добавив объект Url и строку в UIActivityViewController следующим образом:

let url = URL(string: "https://www.google.com)
let text = "Hi there, checkout this cool website: \(url)"
let items: [Any] = [url, text]
let controller = UIActivityViewController(
                    activityItems: items,
                    applicationActivities: nil)

DispatchQueue.main.async{self.present(controller, animated: true, completion: nil)}

^ не фактический код, но достаточно, чтобы нарисоватьpicture

Это работает с Airdrop, открывает URL.
Это также работает в Mail, используется строка, содержащая URL.

Однако это не работаетв iMessage. iMessage берет оба и объединяет их так:

https://www.google.com Привет, зацените этот крутой сайт: https://www.google.com

У кого-нибудь естькакие-либо предложения для меня, чтобы сохранить функциональность для Airdrop / Mail и т. д. Но чтобы он также работал на iMessage?

1 Ответ

0 голосов
/ 22 февраля 2019

Использовать UIActivityItemSource.UIActivityItemSource сообщается идентификатору запрашивающего процесса, поэтому вы можете воздержаться от передачи URL-адреса сообщениям и передать ему только строку, что является достаточным.

...