Значок активности в Instagram не будет отображаться, если отправлено более одного элемента активности - PullRequest
0 голосов
/ 17 января 2019

Я занимаюсь разработкой приложения для 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. Они просто используют то, что им нужно, и игнорируют нежелательные данные, что и должно делать умное приложение, чтобы ладить с другими приложениями и быть другом разработчиков.

  1. Я попытался создать три 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 } } }
  1. Я попытался создать пользовательское действие и открыть приложение Instagram с соответствующей ссылкой «nstagram: //», но это не очень удобно для пользователя.

Я хочу спросить вас:

  1. Поскольку в этом нет ничего плохого для Instagram, я должен сообщить об ошибке? Я только что нашел древнюю страницу developer.instagram.com. Я не думаю, что это поможет мне в этом. Есть идеи?

  2. Как вы справились с этой ситуацией, если встречались раньше?

Спасибо, действительно.

...