Можно ли открыть iPhone Safari и настроить таргетинг на конкретное окно? - PullRequest
1 голос
/ 30 октября 2009

У меня есть приложение, которое использует OAuth для аутентификации, что означает, что пользователь должен быть направлен на веб-сайт для авторизации приложения. Я предпочитаю, чтобы пользователям было очевидно, что они используют стандартный браузер для авторизации на исходном сайте, а не просто используют веб-представление для отображения содержимого в моем приложении. Однако каждый раз, когда они направляются в Safari (через openURL), он запускает новое окно Safari, и как только Safari открывает 8 окон, он просто не работает вообще.

Мне интересно, есть ли эквивалент в атрибуте target целевого тега привязки в html, который позволил бы мне вызывать все вызовы openURL из моего приложения в одном и том же окне.

Есть и другие функции, которые я могу предоставить через веб-приложение, создавая гибридное приложение между собственными функциями iphone и функциями веб-приложения в Safari, но если мне приходится каждый раз открывать новое окно, когда я переключаюсь между приложением и Safari, это становится неработоспособным. Приложение Youtube, очевидно, способно вернуть пользователя на предыдущую страницу после показа видео, но это вполне может быть пользовательский плагин в Safari для iphone. Кроме того, хотя возврат к предыдущей странице несколько полезен, отправка их по новому URL в существующем окне действительно открывает много возможностей.

Ответы [ 2 ]

3 голосов
/ 31 октября 2009

Я почти уверен, что нет способа передать целевой параметр в openURL:.

Что я заметил в Safari, так это в том, что он не откроет другую вкладку, если страница, которую вы открываете с помощью openURL:, уже открыта в Safari. Это просто перезагружает эту страницу. Это может показаться тривиальным и бесполезным, но, возможно, вы могли бы использовать его в своих интересах, если вы можете заставить свое веб-приложение использовать только одну страницу. Различные представления или состояния могут быть выражены с помощью тегов #anchor.

Примером является http://m.flickr.com. Обратите внимание на их структуру URL? Идет http://m.flickr.com/#/home, http://m.flickr.com/#/explore/interesting/, http://m.flickr.com/#/search и так далее. Все это разные веб-страницы для пользователя, но для Safari это одна и та же страница.

0 голосов
/ 21 июня 2013

Я обнаружил, что iOS 6.0.1 Safari откроет ту же вкладку с простым хэштегом, без слешей. Таким образом, в приведенном выше примере http://m.flickr.com, openURL для http://m.flickr.com # someinfo открывает ту же вкладку.

На вашей веб-странице используйте window.location.hash для возврата параметров. В приведенном выше примере он вернет # someinfo.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...