iOS Share Sheet - опция копирования не вставляет ссылку в определенных ситуациях

У нас довольно странная проблема с копированием акций.

По сути, как и у многих людей, у нас просто небольшая реклама о контенте, а затем мы даем ссылку на акцию. Вот так

    guard let viewController = vc, let sourceView = viewController.view, let url = URL(string: link) else { 
        return
    }

    let activityViewController = UIActivityViewController(activityItems: [text, url], applicationActivities: nil)

    viewController.present(activityViewController, animated: true, completion: nil)
    activityViewController.popoverPresentationController?.sourceView = sourceView

Это прекрасно работает, за исключением одной конкретной ситуации. Странно, это наш внутренний чат. В нашем текстовом представлении чата появляется текстовое сообщение, но ссылка не отображается рядом с текстом, как ожидалось. Мне не повезло найти где-либо подобную проблему или что-нибудь еще об этом.

Текстовое представление, о котором идет речь, является https://github.com/slackhq/SlackTextViewController (я знаю, что это устарело, мы уже давно его используем). Я не смог найти никакой документации, которая бы указывала на то, что они дезинфицируют ввод или каким-либо образом удаляют ссылку, но, скорее всего, это как-то связано с этим компонентом. Я попробовал простую реализацию textView: shouldChangeTextInRange, чтобы напечатать текст, полученный textView, и, конечно же, никакой ссылки там нет. Просто для полноты, вот как это выглядит.

override func textView(_: UITextView, shouldChangeTextIn _: NSRange, replacementText text: String) -> Bool {
    print(text)
    return true
}

Кроме того, если вы копируете / вставляете ссылку напрямую, это прекрасно работает. Без вопросов. Если вы скопируете текст в виде простого текста и вставите его, он также будет работать нормально. Это наводит меня на мысль, что здесь чего-то не хватает при обработке этого общего текста.

Кто-нибудь сталкивался с этой проблемой в пасте? Есть ли какой-то жизненный цикл / делегат, который необходимо реализовать для обработки общего текста? Я немного растерялся относительно того, где даже начать находить больше информации здесь.

Все ценится. Спасибо!

0 ответов

Надеюсь, это поможет кому-то еще. Проблема здесь в том, что slacktextviewcontroller переопределяет поведение вставки по умолчанию, и это вызывает некоторую проблему с копией общего ресурса, где он вставляет текст, но не скопированный URL-адрес.

Другие вопросы по тегам