2

我建立了一个移动网站——​​一个针对手持设备优化的网站。如果您使用的是 iPhone,则启动 Safari 并转到站点 URL 以使用此 Web 应用程序。通过将它添加到您的主屏幕,它也可以作为iPhone 网络应用程序运行。所以它不是一个原生的 iPhone 应用程序——它是一个移动网页。

如果您选择将此移动网页作为 iPhone Web 应用程序运行(通过将其添加到您的主屏幕),则您不在正常的 Safari 界面中。如果用户单击指向外部站点的链接,您将离开 Web 应用程序并在 Safari 中打开该链接。另一方面,如果您使用 JavaScript 更改位置,则链接将在 Web 应用程序中打开,而不是在 Safari 中。

现在我正在寻找一种使用 JavaScript 从 iPhone Web 应用程序在 Safari 中打开链接的方法。我试过 window.location.href 但因为它是 JavaScript,所以你留在网络应用程序中。

提前致谢!

4

2 回答 2

0

我很欣赏这不会在所有情况下都有帮助,但前提是 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
    }
});
于 2012-05-03T16:28:17.503 回答
0

我也在为此苦苦挣扎。我在打开外部链接时默认使用基本 HTML,而不是 Javascript——这似乎迫使它在另一个浏览器中打开。我只是在 .html 文件中使用 Javascript 或静态编写了一个带有链接的 div。

我的实现示例,检查“关于”页面以获取用 HTML 编写的非现场链接:http: //4drillsbrewery.com/tools

(请不要评判代码,这只是为了习惯 Dashcode 而编写的玩具,而不是作为编程项目!谢谢)。我会关注这个帖子,希望有人有更好的方法。

于 2012-01-24T03:56:03.793 回答