Разработка сайта только для iPad - принудительно открывать все ссылки в режиме приложения
Я создаю небольшой сайт, который всегда будет просматриваться на iPad, я использую метатег:
<meta name="apple-mobile-web-app-capable" content="yes">
И добавление сайта на домашнюю страницу, чтобы заставить iPad воспринимать его как приложение. Это устраняет адресную строку и кнопки возврата и т. Д.
У меня есть сайт внутри набора фреймов, изначально сайт будет загружаться index.htm
целевая страница с ссылками на другие страницы, содержащие <frameset>
и <frame>
"S. На каждой странице есть рамка навигации и рамка для отображения контента. Содержимое второго фрейма будет внешней веб-страницей.
У меня была проблема, когда запуск сайта в режиме приложения и нажатие на ссылки на целевой странице приводили к открытию нового окна в Safari - по сути, оно выходило бы из контекста приложения и загружало Safari, я решил это с помощью:
<script type="text/javascript">
$(document).ready(function () {
$('a').click(function (e) {
window.location = $(this).attr('href');
e.preventDefault();
});
});
</script>
Который сохраняет все ссылки на моем сайте загруженными в "приложение".
Теперь вот проблема.
Фреймы, которые загружают внешние веб-страницы, очевидно, будут содержать ссылки, при щелчке по этим ссылкам в фрейме это запускает сафари и выходит из контекста приложения, и приложение возвращается к поведению, как и раньше.
Есть ли способ убедиться, что все ссылки на сайте открыты в "приложении", даже те, которые содержатся в <frame>
элементы?
Общая цель здесь состоит в том, чтобы не дать пользователю выйти из приложения и сделать все, что ему нравится в сети.
1 ответ
Я знаю, что вы заявляете, что это веб-сайт, но кажется, что вы делаете что-то похожее на приложение, и я испытываю желание предложить использовать пробел. http://phonegap.com/
Причина в том, что вы не сможете предотвратить открытие ссылок в сафари. Несмотря на то, что Brainfeeder предлагает хорошие варианты загрузки внешнего html в div, но я думаю, что у вас все еще будет та же проблема, когда пользователи нажимают на ссылки с внешних сайтов внутри этого div.
С помощью phonegap все, что вам нужно сделать, - это создать новый проект, скопировать ваш код в папку www и сразу же получить приложение, которое вы сможете развернуть на своем iPad.
Но главное, что заставило меня предположить, что это функция inAppBrowser, которая позволит вам указать ссылки, которые будут открываться в веб-обзоре переднего плана, так что, когда пользователь завершит просмотр, он просто нажмет кнопку "Готово" и вернется в ваше приложение. http://docs.phonegap.com/en/3.0.0/cordova_inappbrowser_inappbrowser.md.html
Примите во внимание, что для решения проблемы с сафари это немного накладные расходы, но, возможно, стоит задуматься.