【问题标题】:jquery mobile web app external HTML page open in web app browserjquery 移动网络应用程序外部 HTML 页面在网络应用程序浏览器中打开
【发布时间】:2013-12-06 20:00:18
【问题描述】:

我创建了一个 jquery 移动网络应用程序,并在其中一个按钮上链接到一个 .HTML 文件。当我将网络应用程序添加到我的主屏幕并点击该按钮时,它会在 Safari 中打开 .HTML 页面,而不是停留在应用程序中。我在网上做了一些研究,发现了这个文件,但我仍然无法让它工作。任何想法如何解决这个问题?

https://github.com/mrmoses/jQuery.stayInWebApp

【问题讨论】:

  • 我的回答对你有用吗?
  • 没什么。页面呈现与具有外部链接的期望一样好,仍然可以打开 safari。我会继续尝试。
  • 是锚链接?分享所有适用于此的代码。你的 HTML 和 JS
  • 仅供参考 - 我的代码与您提到的插件无关。删除该插件(可能有冲突),并确保我的代码如下。然后将我的脚本放在结束正文标记之前。请注意我使用的 <script/> 标记和文档就绪包装器。此外,请确保通过手动关闭应用程序并重新启动来清除 Web 应用程序的缓存(一旦新代码已上传到您的开发服务器)
  • 我有一个 UL 列表,我拥有的 5 个按钮中有 4 个是锚链接。一个按钮指向一个 .html 文件。 production.elpasotimes.net/LasCrucesCountryFestival你可以在这里查看源代码。感谢您的帮助。

标签: javascript jquery html ios jquery-mobile


【解决方案1】:

这是我使用的...适用于所有anchors。长话短说,它禁用了每个锚点的默认行为,抓取点击的锚点的href,然后使用 js 打开网络应用程序中的链接。仅适用于移动设备。

<script>
$(function() {
    // prevent anchor links from opening in safari, web-app fix
    if (("standalone" in window.navigator) && window.navigator.standalone) {
        // For iOS Apps
        $('a').on('touchend click', function (e) {
            e.preventDefault(); return false;
            var new_location = $(this).attr('href');
            if (new_location != undefined && new_location.substr(0, 1) != '#' && $(this).attr('data-method') == undefined) {
                window.location = new_location;
            }
        });
    }
});
</script>

【讨论】:

    猜你喜欢
    • 2017-11-06
    • 2017-03-27
    • 2019-07-10
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-04-24
    • 1970-01-01
    相关资源
    最近更新 更多