Отключить Twitter Универсальные глубокие ссылки

Обновление: кажется, Twitter исправил эту проблему. Нажатие кнопки авторизации теперь работает! Спасибо всем за ответы.

У меня есть UIWebView, который открывается и направляет на веб-страницу Oauth/Authorize Twitters. Пользователь регистрируется там с помощью данных Twitter и подтверждает подлинность использования нашего приложения с помощью аккаунта Twitter. Этот процесс прекрасно работал до выхода iOS-приложения Twitter 6.37. Что происходит сейчас, когда WebView обнаруживает https://twitter.com/oauth/authorize?oauth_token вместо того, чтобы оставаться в WebView, он открывает собственное приложение Twitter и умирает. Если вы удаляете приложение Twitter, все работает как обычно, оставаясь в WebView. Как я могу предотвратить это? Я хочу оставаться в своем UIWebView и не открывать автоматически глубокие ссылки. Я читал об изменениях в URL-адресе новых ссылок в iOS 9, но не уверен, как остановить их из моего приложения в другие нативные приложения. Спасибо за любую помощь!

3 ответа

Решение

В качестве обходного пути, на экране аутентификации Twitter мы можем использовать кнопку "Перейти" на клавиатуре ввода iOS вместо кнопки входа в веб-представление до тех пор, пока Twitter не исправит ошибки. Пожалуйста, обратитесь к приложенной ссылке на скриншот для ясности.

Скриншот для обхода

Я также столкнулся с этой проблемой и понял, что это связано с тем, что моей конечной точке авторизации было присвоено значение https://twitter.com/oauth/authorize?oauth_token="+oauthToken (Я считаю, что это было в оригинальной документации). Если вы добавите api как поддомен: https://api.twitter.com/oauth/authorize?oauth_token="+oauthToken, он больше не будет вызывать глубокие ссылки и загружать приложение Twitter.

Мой ответ на это через вопрос Xamarin:

Если только Твиттер не удалит / не обновит раздел приложений в " https://www.twitter.com/apple-app-site-association", чтобы разрешить обход или вторичный oauth, которого нет в файле Apple-App-Site-Association-I не понимаю, как бы вы это сделали. Эти файлы подписаны, и iOS обрабатывает их на уровне ОС.

Я не слишком много играл с делегатом continueUserActivity и объектом NSUserActivity, который передается приложениям, запускаемым по ссылкам UNI, но я не вижу способа, чтобы запущенное приложение (например, Twitter) могло вернуть управление исходному приложению, и в эта точка цепочки вызовов oauth все равно будет нарушена....

  • Уникальный. В отличие от пользовательских схем URL, универсальные ссылки не могут быть востребованы другими приложениями, поскольку они используют стандартные ссылки HTTP или HTTPS на ваш сайт.

  • Secure. Когда пользователи устанавливают ваше приложение, iOS проверяет файл, который вы загрузили на ваш веб-сервер, чтобы убедиться, что ваш сайт позволяет вашему приложению открывать URL-адреса от его имени. Только вы можете создать и загрузить этот файл, поэтому связь вашего веб-сайта с вашим приложением безопасна.

Через: https://developer.apple.com/library/prerelease/ios/documentation/General/Conceptual/AppSearch/UniversalLinks.html

Я бы сообщил о проблеме (баг?) На форуме разработчиков Twitter: https://twittercommunity.com/

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