当前位置: 首页 > 编程笔记 >

javascript实现阻止iOS APP中的链接打开Safari浏览器

闾丘晨
2023-03-14
本文向大家介绍javascript实现阻止iOS APP中的链接打开Safari浏览器,包括了javascript实现阻止iOS APP中的链接打开Safari浏览器的使用技巧和注意事项,需要的朋友参考一下

上次根据网上的教程给自己的网站弄了一个Web APP,但是给用户的感觉却十分糟糕。

问题说明:

怎么了?原来是打开WEB APP后在主页上随意打开连接,就会自作主张地打开Safari浏览器。原来好好的伪装和心情就全被破坏掉了。这该如何是好?原来解决方法十分简单。仅仅加入这些代码就好了。实验测试在本人的 iPhone (iOS 7.1)和iPod (iOS 6.1.4)上测试通过,根据原作者的叙述,最新的 iOS 7.0.4(iPhone 与 iPad)测试通过,代码应该兼容性不错,在这里分享:

问题解决:

<script type=“text/javascript”>  
//iOS Web APP中点击链接跳转到Safari 浏览器新标签页的问题  
if ((“standalone” in window.navigator) && window.navigator.standalone) {
    var noddy, remotes = false;
    document.addEventListener(‘click',
    function(event) {
        noddy = event.target;
        while (noddy.nodeName !== “A” && noddy.nodeName !== “HTML”) {
            noddy = noddy.parentNode;
        }
        if (‘href' in noddy && noddy.href.indexOf(‘http') !== -1 && (noddy.href.indexOf(document.location.host) !== -1 || remotes)) {
            event.preventDefault();
            document.location.href = noddy.href;
        }
    },
    false);
}
</script>

建议将代码放到/head标签前,当然,另外存为一个js 文件引用也是可以的。

 类似资料:
  • 我有一个非常简单的测试应用程序,上面有一个webview组件。我正试图阻止链接在浏览器中打开,但“shouldoverrideurlloading”看起来对我不起作用。 有人能帮我看看哪里有错误吗?

  • 问题内容: <a target=”_blank” data-rel=”external” href="http://www.kidzout.com">www.kidzout.com 问题答案: 作为建议类似的问题,使用JavaScript来调用与参数设置为当按照InAppBrowser文档: 这应该起作用,尽管更好,更灵活的解决方案是拦截所有链接的事件,并使用从链接属性读取的参数进行调用。 请记住

  • 我发现一些电子邮件客户端不能正确处理深度链接,所以解决方案是在电子邮件中放置一个链接到一个超文本传输协议网址,并让服务器从该链接重定向到实际的深度链接。 在iOS,这个解决方案会导致浏览器在最终触发深度链接并提供打开我的应用程序之前打开。然而,我刚刚注意到我手机上有一个应用程序,它似乎使用了同样的解决方案,只是它跳过了打开浏览器的步骤,尽管电子邮件中的链接是超文本传输协议。 我如何复制相同的结果,

  • 问题内容: 是否有任何(简单/内置方式)打开新浏览器(我的意思是默认的OS浏览器)窗口来查找Electron链接的方法,而不是访问您Electron应用程序中的链接? 问题答案: 您可以简单地使用:

  • 我最近实现了shouldInterceptRequest方法来检测链接的时间“http://sitemercado.com.br/valida“点击在android浏览器中打开它,而不是在webview中内部打开,直到它工作为止。链接在浏览器中打开,但当我回来查看webview应用程序时,它也被加载了,我希望它只在浏览器中加载。 我的代码如下: 我哪里做错了?

  • 本文向大家介绍JS打开新窗口防止被浏览器阻止的方法,包括了JS打开新窗口防止被浏览器阻止的方法的使用技巧和注意事项,需要的朋友参考一下 本文实例讲述了JS打开新窗口防止被浏览器阻止的方法。分享给大家供大家参考。具体分析如下: 用传统的window.open()方式打开新窗口,会被浏览器阻止,那么,我们如何才能让JS打开新窗口不被浏览器阻止呢?其实办法还是有的,这里我们就来分析一下如何解决这个问题