Я занимаюсь разработкой приложения для IOS, которое позволит пользователям находить текстовые и графические материалы и обмениваться ими с поставщиками социальных сетей.
Для этого мой выбор показывает лист активности с init(activityItems: [Any], applicationActivities: [UIActivity]?)
Я хочу предоставить String, URL и UIImage в виде activityItems: [Any]
, надеясь, что все провайдеры выберут любой элемент (ы), которые им нравятся.
Проблема в том, что действие общего доступа в Instagram не будет отображаться в моей таблице активности, если я предоставлю в качестве элемента активности что-либо, кроме одного UIImage.
Я попробовал почти любую комбинацию с этими тремя типами предметов.
let activityVC = UIActivityViewController(activityItems: [image], applicationActivities: nil)
let activityVC = UIActivityViewController(activityItems: [string, image], applicationActivities: nil)
let activityVC = UIActivityViewController(activityItems: [image, string], applicationActivities: nil)
let activityVC = UIActivityViewController(activityItems: [image, string, url], applicationActivities: nil)
...
Появляются все остальные действия, кроме Instagram. Они просто используют то, что им нужно, и игнорируют нежелательные данные, что и должно делать умное приложение, чтобы ладить с другими приложениями и быть другом разработчиков.
- Я попытался создать три UIActivityItemSource, чтобы иметь возможность контролировать то, что отправляется действиям, но IOS не имеет ActivityType, как
.postToInstagram
. Это не сработало, даже если все другие элементы деятельности (строка, URL) отправляются как nil
.
let activityVC = UIActivityViewController(activityItems: [image, CUKActivityItemSourceAsURL()], applicationActivities: nil)
class CUKActivityItemSourceAsURL: NSObject, UIActivityItemSource {
func activityViewControllerPlaceholderItem(_ activityViewController: UIActivityViewController) -> Any {
return URL(string: "https://example.com")! }
func activityViewController(_ activityViewController: UIActivityViewController, itemForActivityType activityType: UIActivity.ActivityType?) -> Any? {
return nil } } }
- Я попытался создать пользовательское действие и открыть приложение Instagram с соответствующей ссылкой «nstagram: //», но это не очень удобно для пользователя.
Я хочу спросить вас:
Поскольку в этом нет ничего плохого для Instagram, я должен сообщить об ошибке?
Я только что нашел древнюю страницу developer.instagram.com. Я не думаю, что это поможет мне в этом. Есть идеи?
Как вы справились с этой ситуацией, если встречались раньше?
Спасибо, действительно.