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

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

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

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

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

Ответы [ 2 ]

0 голосов
/ 03 мая 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
    }
});
0 голосов
/ 24 января 2012

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

В качестве примера моей реализации, проверьте страницы "about" на наличие внешних ссылок, написанных на HTML: http://4drillsbrewery.com/tools

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

...