Можно ли открыть iPhone Safari и настроить таргетинг на конкретное окно?

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

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

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


person ideasculptor    schedule 30.10.2009    source источник


Ответы (2)


Я почти уверен, что нет возможности передать целевой параметр 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 это одна и та же страница.

person Ole Begemann    schedule 31.10.2009
comment
Это действительно очень полезно. Я уверен, что смогу с этим сделать что-нибудь полезное. Спасибо - person ideasculptor; 31.10.2009
comment
Хм. Просто протестировал это, и на самом деле он вообще не работает. Safari на iphone по-прежнему запускает новое окно для каждого вызова openURL, даже если URL-адрес на 100% идентичен, не говоря уже о том, что он зависит от тега привязки. - person ideasculptor; 05.11.2009

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

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

person Mark Sawers    schedule 21.06.2013