2017-06-19 49 views
0

当我使用cordova run browsercordova run browser --target=chrome时,该过程会启动一个新Chrome浏览器窗口,其Chrome版本与我的默认版本不同。科尔多瓦浏览器打开不同的Chrome?

在我的系统中,我有我的常规安装(当前为v58),安装了Chrome Canary(当前为v61),Cordova使用v59打开新的Chrome。 (这奇怪的报告可能是由于挂起安装在我的常规的Chrome,无论是常规的Chrome和科尔多瓦的打开Chrome的是V59)

为什么科尔多瓦不能在新标签页开始,或者我为什么不能连拖新打开的窗口放入我已经打开的普通Chrome的标签中?

+0

请注意,例如'--target = opera'应用程序将启动到已打开Opera的新选项卡中。这是我想要Chrome的行为或缺少'--target'选项的默认行为。 – kontur

+0

它可能会启动一个新的窗口,因为它启动了'--disable-web-security'标志 – jcesarmobile

+0

有没有办法禁用该标志? – kontur

回答

1

这是--user-data-dir param,我们与chrome.exe一起传递,导致在新窗口中打开一个chrome实例的行为。该功能已合并,因此用户特定的数据可以单独保存以供测试。

这就是为什么你甚至不能拖拽新打开的窗口到已经打开的chrome实例中的原因。基本上它是为了保持个体实例的完整性。

的TWEAK停止开设新的实例铬实例(虽然不推荐,除非它真的一个要求)是你在你的答案已经提到,停止传递--user-data-dir参数编辑/Projectroot/platforms/browser/cordova/node_modules/cordova_serve/src文件夹下的文件browser.js。希望能帮助到你。欢呼声

+0

我有相反的问题:我最近升级了Cordova,现在“cordova run browser”在我现有的Chrome实例的新选项卡中打开应用程序,而不是像以前那样在全新的实例中打开应用程序。我更喜欢以前的行为,但我看不出如何强制它 - 看着browser.js,--user-data-dir似乎被定义。有什么建议么?谢谢! –

+0

@williamwhyte它是否与Chrome设置有关?您是否通过在chrome.exe属性中传递用户数据目录来手动尝试它并尝试手动打开它? – Gandhi

+0

在Mac上,我运行了 /Applications/Google \ Chrome.app/Contents/MacOS/Google \ Chrome --args --user-data-dir〜/ tmp。 我得到错误“[28294:37891:1016/131241.702920:错误:browser_gpu_channel_host_factory.cc(103)]无法启动GPU进程。”但这似乎是无关的。 Chrome从现有窗口的新选项卡开始,随着我登录,而不是作为单独的进程并且没有用户登录。 因此,它看起来像是Chrome中的更改,而不是Cordova中的更改。希望科尔多瓦团队能够解决这一变化并适当修改CLI。 –

0

基于@Gandhi的评论,我发现将var chromeArgs转换为/Projectroot/platforms/browser/cordova/node_modules/cordova_serve/src/browserjs中的一个空字符串,可以实现在预设用户的默认浏览器中打开预览效果。

这看起来有点不好意思,所以我很乐意提供任何更复杂的解决方案,以便如何可靠地将其从默认行为中切换。

+1

据我所知,这是可能的调整,你可以做为“运行浏览器”命令打算与特定的用户数据目录 – Gandhi

+1

已公布的综合答案。接受它是否有用。 – Gandhi

+0

请您接受答案,因为它可能是最好的解决方案,据我所知,赏金似乎已经用完了。在此先感谢 – Gandhi