Ссылки на удаленных сайтах 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, который также может помочь.