2010-12-17 3 views
3

Я разрабатываю небольшой сайт, который будет отображаться только в приложении внутри UIWebView, а одна страница имеет несколько ссылок на внешний веб-сайт. Я бы хотел, чтобы они открылись в мобильном Safari, но все ссылки внутри загрузки приложения в веб-виде. Изменение источника приложения не является вариантом, так как сайт должен быть активным до того, как могут быть отправлены какие-либо изменения.Запуск мобильного Safari от UIWebView * без * изменения источника приложения?

Есть ли способ заставить ссылку внутри UIWebView запустить Mobile Safari с использованием HTML/5 или Javascript? Mimic shouldStartLoadWithRequest? Скрытые, взломанные обходные пути или блестящие альтернативные решения?

(А, из чистого любопытства ... почему бы и нет?)

ответ

1

Было бы плохой дизайн, чтобы получить доступ к сайтам рамок на iPhone с помощью простого HTML. Это откроет всевозможные дыры в безопасности. Это не веб-поведение, которое вы хотите изменить, поэтому, я думаю, вам может понадобиться изменить источник приложения. Я до сих пор не понимаю, почему это не вариант. Не могли бы вы углубиться?

+0

Это имеет смысл - я никогда не рассматривал риски безопасности. Изменение источника приложения не является вариантом из-за ограничений по времени; веб-просмотр содержит сайт iAd-esque для продвижения праздника и должен быть живой, прежде чем мы сможем продвинуть новый выпуск. (Без контроля над конечным сервером тоже.) Запуск мобильного Safari был идеальным решением, поскольку внешний сайт имеет плохую юзабилити + пути обратно на промо-сайт. Скорее всего, я попытаюсь использовать iframe с настраиваемым nav на вершине, как это может вызвать слэш. – pixi 2010-12-17 08:19:58

0

Один из вариантов - добавить пользовательский обработчик URL. Затем ваш веб-сайт может определить, является ли «браузер» приложением и обслуживает пользовательские URL-адреса для тех ссылок, которые вы хотели бы поддерживать (aka open) в своем приложении. Затем в Mobile Safari откроются все стандартные URL-адреса HTTP/s.

Другими словами, ваш веб-сервер предоставляет URL-адреса, такие как myappurl: // для ссылок, которые вы хотите обработать, и http: //, которые откроют Mobile Safari.

Смежные вопросы