Отключить 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-адреса от его имени. Только вы можете создать и загрузить этот файл, поэтому связь вашего веб-сайта с вашим приложением безопасна.
Я бы сообщил о проблеме (баг?) На форуме разработчиков Twitter: https://twittercommunity.com/