Cordova : 使用谷歌浏览器打开链接

Posted

技术标签:

【中文标题】Cordova : 使用谷歌浏览器打开链接【英文标题】:Cordova : Open a link using Google Chrome 【发布时间】:2016-06-29 08:17:28 【问题描述】:

我想从我的 Cordova 应用程序中使用 Google Chrome(而不是其他浏览器)打开一个链接。我尝试了几种解决方案,但没有任何效果。

首先,我尝试创建指向googlechrome:// 的链接(使用html <a> 标记)。它会打开 Google Chrome,但我无法选择要打开的 URL。

然后,我尝试创建指向intent://my.url.com/#Intent;scheme=https;package=com.android.chrome;end 的链接。此链接在我从浏览器(如 Firefox 或 Google Chrome)打开时有效,但在我从 Cordova 应用程序中打开时无效。

我也尝试过使用cordova-webintent 插件,就像这样:

window.plugins.webintent.startActivity(
    
        action: window.plugins.webintent.ACTION_VIEW,
        url: 'intent://my.url.com/#Intent;scheme=https;package=com.android.chrome;end'
    ,
    function() 
        alert(url);
    ,
    function()
        alert('Failed to open URL via Android Intent');
    
);

但我收到 “无法通过 Android Intent 打开 URL” 错误。

我该怎么办?

PS : 我在 config.xml 文件中写了<allow-intent href="*" />

【问题讨论】:

【参考方案1】:

您可以使用cordova-plugin-inappbrowser 和_system 作为目标:

cordova.InAppBrowser.open('http://***.com', '_system', 'location=yes');

或者你可以使用cordova-plugin-webintent2(不知道是不是你用的一样),像这样:

window.plugins.webintent.startActivity(
        action: window.plugins.webintent.ACTION_VIEW,
        url:  "googlechrome://navigate?url=http://www.***.com"
    ,
    function() ,
    function() 
        alert('Failed to open URL via Android Intent.');
      console.log("Failed to open URL via Android Intent.")
    );

url必须以http或https开头,不允许使用相对url。

【讨论】:

感谢您的回答。第一个解决方案不起作用,因为它询问用户选择什么浏览器,这不是我想要的。但是,您发布的 sn-p 帮助我理解了未记录的 googlechrome:// URL Scheme,并且我找到了一个使用它的简单解决方案(请参阅我的答案)。谢谢! 我给了你赏金,因为你帮我找到了很多答案:) 如果它是一个谷歌地图链接,你想强制使用 chrome vs maps 应用程序,上面的InAppBrowser 选项将不起作用。手机会提示用户是否要使用地图或 Chrome 打开链接——如果用户已经默认使用地图,它会简单地绕过问题并在地图中自动打开——违背了强制打开的目的铬。【参考方案2】:

我终于找到了解决办法。我只需要创建一个像这样的链接:

<a href="googlechrome://navigate?url=https://my.url.com/"></a>

【讨论】:

以上是关于Cordova : 使用谷歌浏览器打开链接的主要内容,如果未能解决你的问题,请参考以下文章

如何给google Chrome浏览器设置代理

阿里旺旺调用谷歌Chrome浏览器打不开网页崩溃了显示错误代码 RESULT_CODE_MISSING_DATA-完美解决

谷歌浏览器打不开怎么办???

在 Safari (cordova) 中打开外部链接

为啥谷歌浏览器打不开怎么办?

用IE浏览器打开网页打不开而用谷歌浏览器能打开.怎么办?