【问题标题】:Cordova 3.5 - Android open links in the mobile system browser not working at allCordova 3.5 - 移动系统浏览器中的 Android 打开链接根本不起作用
【发布时间】:2014-09-29 04:32:56
【问题描述】:

我知道这个问题已经被问过很多次了。但就我的一生而言,我似乎无法让它与所有这些解决方案一起工作。

我正在使用 cordova 3.5 + jquery mobile(用于设计)+ 一些 js 插件。

这些是我尝试并完成 rnd 的事情:

navigator.app.loadUrl("http://google.com", {openExternal : true});

<a onclick="navigator.app.loadUrl('https://google.com/', { openExternal:true });">Link</a>

在这里我得到错误导航器未找到,并且链接在应用程序内一直打开。

然后我跟随here的一些想法:

<access origin="http://alunny.github.com" browserOnly="true" />

在这种情况下,浏览器仅在我使用cordova构建它时发生变化,然后显然没有发生变化。

然后我发现使用 JS 函数的另一种方法是:

<script type="text/javascript">
           $('a[target=_blank]').on('click', function(e) {
           e.preventDefault();
           window.open($(this).attr('href'), '_system');
           return false;
       }); 
    </script>

这里也没有发生任何事情。

我应该提到其中大部分是去年的答案,没有提到 Cordova 3.5.0-0.2.6

因此,我为这个特定版本启动了这个线程,我非常感谢一些帮助。我正在测试的手机是运行 Android 4.4.4 的 Moto G。

【问题讨论】:

    标签: javascript android jquery-mobile phonegap-build cordova-3


    【解决方案1】:

    sagar 提供的链接中接受的答案是解决方案。我在运行 android 4.4 的 motog 中尝试过,它工作正常。添加了这个 window.open('http://www.google.de', '_system');并在项目目录下安装了inapp浏览器插件。

    我的科尔多瓦版本是 3.4,但我认为这不应该有所作为

    我关注的链接http://community.phonegap.com/nitobi/topics/open_external_links_in_system_browser_phonegap_build_3_1_iphone_android_windows

    已经发布了我根据您需要的示例创建的示例测试项目 https://gist.github.com/rahulinaction/f5d347ea9c74a941273e

    【讨论】:

    • 我试过了。浏览器确实打开,但不是作为单独的应用程序打开,而是在我的应用程序本身中打开,这样用户必须按回浏览器然后返回到应用程序,这不是通常的流程。该 URL 必须在浏览器中作为单独的应用程序本身打开,并且我的应用程序应该仍然可用。希望我解释清楚。它实际上对你有什么作用?我仍然会尝试您共享的 phonegap 链接,看起来像是一种新方法。谢谢。
    • 我尝试了链接中的答案。我的 config.xml 文件自动重置,我添加的所有内容都被删除,因此没有任何更改生效。我编辑的配置是根目录中的配置,而不是第一个目录中的配置。实际编辑哪一个?
    • config.xml 位于您从命令行创建的项目附近。不要编辑符号链接的 config.xml。
    • 什么是符号链接的 config.xml?根里面的那个?
    • 我通过编写代码来实现这一点: $('a').on("click",function(event){ event.preventDefault(); var anchor = $(this); var value = anchor.attr("href"); window.open(value, '_system'); });在函数 onDeviceReady 之外,但在文档内部准备就绪!
    【解决方案2】:

    这是一个简单的演示:

    &lt;h1 onclick="window.open('yourWebsiteAddress')"&gt;HELLO THERE EVERYONE&lt;/h1&gt;

    另外你需要添加cordova插件:org.apache.cordova.inappbrowser

    使用这个link

    【讨论】:

    • 我试过这个。另外,该链接进一步提到我需要安装您的答案中缺少的 inappbrowser 插件。你是怎么做的?
    • 链接就是你的答案我刚刚给你演示了
    • 您确定插件网址中有“核心”吗?链接没有。那是你试过的吗?当我尝试 Moto G 时它不起作用。
    • @Gallwynmasc 查看他的编辑,他从插件 URL 中删除了核心。它应该可以工作。
    • @HischT 我已经尝试过这种方法。它没有按需要工作。就像我在下面的评论中提到的那样。浏览器确实打开,但不是作为单独的应用程序打开,而是在我的应用程序本身中打开,这样用户必须按回浏览器然后返回到应用程序,这不是通常的流程。 URL 必须在浏览器中作为单独的应用程序本身打开,并且我的应用程序应该仍然可用。希望我解释清楚。它实际上是如何为你工作的?我还是会试试你分享的 phonegap 链接,看起来像是一种新方法。
    猜你喜欢
    • 2019-02-25
    • 2014-02-19
    • 1970-01-01
    • 1970-01-01
    • 2017-08-21
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2023-02-01
    相关资源
    最近更新 更多