iPhone WebApp открывает ссылки в сафари - PullRequest
1 голос
/ 17 января 2012

Когда я добавляю свое «веб-приложение» на домашний экран своего iPhone, затем открываю его и нажимаю на ссылку, открывается Safari.

Я нашел пару решений моего вопроса, но они, похоже, не работают:

iPhone Safari Web App открывает ссылки в новом окне

$('a').live('click', function (event)
{      
var href = $(this).attr("href");

if (href.indexOf(location.hostname) > -1)
{
    event.preventDefault();
    window.location = href;
}
});

http://jakeboyles.com/2011/01/16/how-to-build-an-iphone-and-ipad-web-app/

<a ontouchstart="window.location=yourlink.html' ">Your Link</a>

Оба эти поста / руководства были написаны до iOS5. Есть ли новый метод? Я что-то не так делаю?

Ценю вашу помощь

Ответы [ 4 ]

1 голос
/ 13 июня 2013

Это отлично работало на iPhone 5

$(document).ready(function(){

    // Stop the default behavior of the browser, which
    // is to change the URL of the page.
    $("a").click(function(event){
        event.preventDefault();
        // Manually change the location of the page to stay in
        // "Standalone" mode and change the URL at the same time.   
        window.location = $(this).attr('href');
    });
 });

Не забудьте указать ссылку на новейшую версию jQuery.

1 голос
/ 07 апреля 2012

Этот код JavaScript работает для iOS 5 (он работал для меня):

В заголовке тега:

<script type="text/javascript">
function OpenLink(theLink){
    window.location.href = theLink.href;
}
</script>

В ссылке, которую вы хотите открыть в том же окне:

<a href="(your website here)" onclick="OpenLink(this); return false"> Link </a>

Код основан на этом комментарии: http://mobile.tutsplus.com/tutorials/iphone/iphone-web-app-meta-tags/comment-page-1/#comment-10699

1 голос
/ 17 января 2012

Одна идея состоит в том, чтобы сделать приложение на главном экране iframe и заставить все якоря нацеливаться на него.Не требуется JavaScript.

В качестве альтернативы:

$('a').on('click touchend', function(ev){

    $(this).preventDefault();
    window.location = $(this).attr('href');

});

Никогда не используйте «touchstart» для чего-то вроде ссылок.Вы только хотите определить, когда пользователь перестает касаться ссылки.То же самое для обнаружения нажатий клавиш, щелчков мыши и т. Д. Это конец события, которое вы хотите обнаружить.

.live устарело в последних версиях jQuery, поэтому используйте его.on () отныне, и он плавно обходит существующие и не существующие элементы.

0 голосов
/ 14 февраля 2012

Я тот, кто написал статью, на которую вы ссылаетесь. Я все еще использую свой метод JavaScript, и он прекрасно работает для меня. Touchstart прекрасно работает для веб-приложений, так как браузеру требуется немного больше времени для его рендеринга. Если вы планируете создать собственное приложение, не используйте его, но я использовал Touchstart для многих приложений, и он отлично работает.

Спасибо Джейк Бойлз

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...