Ссылки на удаленных сайтах JQueryMobile в приложении PhoneGap открывают Safari

У меня довольно специфическая проблема с PhoneGap и JQuery Mobile, использующими последние версии обеих платформ на момент написания статьи.

В моем приложении phonegap есть некоторые страницы, "локальные" для приложения, и другие страницы, которые загружаются непосредственно с удаленного сайта. Переход между локальной и удаленной страницами - это хорошо (нет перехода, но с этим ничего не поделаешь). Однако, как только я попадаю на удаленные страницы, любая ссылка, которую я нажимаю на удаленных страницах, открывает Safari со страницей, которую я запрашивал. Это нежелательная функциональность, так как я хотел бы, чтобы все это было в UIWebView, и ни одна из моих ссылок не помечена чем-то особенным, что могло бы открыть Safari.

Это становится страннее. Если я затем переключаюсь с Safari обратно на программу, в UIWebView появляется запрашиваемая мной удаленная страница, однако нажатие кнопки "Назад" приводит меня не к первой удаленной странице, а к первой локальной странице.

Приложение phonegap сейчас довольно простое, очень близко к настройке по умолчанию, за исключением загруженной JQM css + js. Это происходит, даже если я создаю простое тестовое приложение с одной локальной страницей JQM, одной удаленной страницей JQM, а затем удаленной страницей, на которую ссылается удаленная страница JQM.

Я в тупике. Что тут происходит?

1 ответ

Решение

Поведение по умолчанию для PhoneGap заключается в открытии внешних ссылок в Safari, если они не добавлены в свойство ExternalHosts в PhoneGap.plist.

Попробуйте добавить внешние хосты, и PhoneGap должен вести себя правильно и загрузить внешние местоположения внутри приложения.

http://30.media.tumblr.com/tumblr_lps449iRXW1qbmzy5o1_500.png

Здесь также есть пост об использовании iFrames и ExternalHosts, который также может помочь.

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