Открыть внешнюю страницу из веб-приложения iPhone с помощью JavaScript?

Я создал веб-сайт для мобильных устройств - веб-сайт, оптимизированный для портативных устройств. Если вы используете iPhone, запустите Safari и перейдите по URL-адресу сайта, чтобы использовать это веб-приложение. Его также можно запустить как веб-приложение для iPhone, добавив его на главный экран. Так что это не родное приложение для iPhone - это мобильная веб-страница.

Если вы решите запустить эту мобильную веб-страницу как веб-приложение для iPhone (добавив ее на домашний экран), вы не находитесь в обычном интерфейсе Safari. Если пользователь нажимает ссылку на внешний сайт, вы покидаете веб-приложение, и ссылка открывается в Safari. С другой стороны, если вы используете JavaScript для изменения местоположения, ссылка открывается в веб-приложении, а не в Safari.

Теперь я ищу способ открыть ссылку в Safari из веб-приложения iPhone с помощью JavaScript. Я пробовал window.location.href, но поскольку это JavaScript, вы остаетесь в веб-приложении.

Заранее спасибо!


person tkahn    schedule 05.01.2012    source источник
comment
Вот пример, когда пользователь хочет сделать противоположное тому, что я пытаюсь сделать: открыть все ссылки в веб-приложении: stackoverflow.com/questions/2898740/   -  person tkahn    schedule 05.01.2012
comment
Еще слишком рано, и у меня нет времени составлять тестовый пример, поэтому я не буду давать ответ, но вы пробовали window.open?   -  person Quentin    schedule 05.01.2012
comment
Да, я пробовал. В результате ничего не происходит.   -  person tkahn    schedule 05.01.2012


Ответы (2)


Я тоже борюсь с этим. Я по умолчанию использовал базовый HTML при открытии внешней ссылки вместо Javascript - похоже, это заставляет ее открываться в другом браузере. Я просто пишу div со ссылкой внутри, используя Javascript или static в файле .html.

Пример моей реализации, проверьте страницы «О нас» на наличие внешних ссылок, написанных в HTML: http://4drillsbrewery.com/tools < / а>

(Пожалуйста, не судите код, это была просто игрушка, написанная для того, чтобы привыкнуть к Dashcode, а не как проект программирования! Спасибо). Я буду следить за этой веткой, надеясь, что у кого-то есть способ получше.

person Brett Heliker    schedule 24.01.2012

Я понимаю, что это не поможет во всех сценариях, НО ПРЕДОСТАВЛЕНО, что код javascript исходит из созданного пользователем щелчка гиперссылки, есть это решение ...

$("a.someHyperLink").click(function () {
    var url = doJavascriptStuffToGenerateTheDynamicUrl();
    $(this).prop("href", url);
    return true; // return true so the click propagates and the new href is followed
});

Вы можете расширить его, чтобы он работал как при обычном просмотре сайта в Safari, так и как отдельное приложение.

$("a.someHyperLink").click(function () {
    var url = doJavascriptStuffToGenerateTheDynamicUrl();
    if (window.navigator.standalone) {
        // We are within the context of an iPhone standalone/fullscreen/homescreen app
        // Change the href and return true so that we leave the standalone app and the URL is opened in a new window in Safari
        $(this).prop("href", url);
        return true;
    } else {
        // Website is open in a browser normally
        // Open the URl in a new browser window
        window.open(url);
        return false; // Return false so the href isn't followed
    }
});
person Oliver Pearmain    schedule 03.05.2012