uni-app 运行到Chrome时每次运行打开的都是新的Chrome实例的Bug并未修复

发布于 1周前 作者 gougou168 来自 uni-app

uni-app 运行到Chrome时每次运行打开的都是新的Chrome实例的Bug并未修复

操作步骤

  1. 双击打开HBuilder X;
  2. 点击要运行的项目;
  3. 点击【运行】->【运行到浏览器】->【chrome】

预期结果

直接在已打开的chrome中运行程序

实际结果

打开了新的Chrome实例,新版本的并没有解决掉【uni-app 运行到Chrome 每次运行打开的都是新的Chrome实例的Bug】

bug描述

在 HBuilder X 3.7.3.20230223版本更新中,有个关于修复 uni-app 运行到Chrome 每次运行打开的都是新的Chrome实例的Bug; 但是在实际运行的时候,还是会打开新的Chrome实例,这个BUG并没有修复

图片 图片

开发环境信息

项目创建方式 PC开发环境操作系统 PC开发环境操作系统版本号 HBuilderX类型 HBuilderX版本号 浏览器平台 浏览器版本
HBuilderX Windows Windows 10 专业版 20H2 19042.1526 正式 3.7.3 Chrome 110.0.5481.178

13 回复

具体表现在:打开的Chrome实例,会保留和记忆上次的一些信息,比如cookie、书签等。


从上个版本就等这个问题修复,昨天看到修复更新赶紧更新,结果发现并没有什么L用

3.7.3.20230223 修复 uni-app 运行到Chrome 每次运行打开的都是新的Chrome实例的Bug 实测并没有修复 真的蚌埠住了

我mac M1 运行到Chrome 每次运行打开的都是新的Chrome实例的Bug 也没有修复 上周发的帖子

还新增一个运行时自动打开 Vue Devtools 也没什么用,运行的时候程序崩溃

新的Chrome实例 而且打开的还是 x86_64的 实例 在m1 arm 里面很卡

又来了,3.7.8.20230323新版本又说修复了,实测还是没有修复

这问题还能修复吗,半年多了

都快一年了 还没有修复

我明明把chrome相关的东西都搬到D盘了,而且HbuilderX也配置了运行浏览器的路径。 可是HbuilderX运行到chrome时还是不知道从哪里启动一个崭新无配置的谷歌浏览器,然后我C盘又多了User Data文件夹,里面一堆东西。

终于搞定,安装完谷歌浏览器后,把chrome文件夹复制到D盘,然后通过控制面板的程序把chrome卸载掉,最后HbuilderX配置的运行浏览器的路径指向D盘那个exe就可以了,运行到chrome会在打开的谷歌浏览器打开新标签页。

针对你提到的uni-app在运行到Chrome时每次都会打开新的Chrome实例的问题,这通常与uni-app的配置或开发工具的默认行为有关。虽然这个问题可能在不同版本的开发环境中表现不同,但我们可以尝试通过一些配置和脚本来优化或解决它。以下是一些可能的解决方案和相关的代码示例:

1. 检查并更新uni-app和HBuilderX

首先,确保你的uni-app和HBuilderX都更新到最新版本。开发者工具和框架的更新往往包含了对已知问题的修复。

2. 配置Chrome为默认浏览器

在HBuilderX中,你可以设置默认的浏览器为Chrome,并尝试配置它使用已打开的Chrome实例。虽然HBuilderX的默认行为可能是打开新实例,但你可以通过以下方式尝试修改:

  • 打开HBuilderX的设置(Preferences)。
  • 在“运行/调试配置”中找到“浏览器运行”选项。
  • 检查是否可以选择“使用系统默认浏览器”或指定一个已打开的Chrome实例的路径(这通常不可行,因为Chrome实例的路径是动态变化的)。

3. 使用命令行启动Chrome并附加到uni-app

一个更灵活的方法是使用命令行启动Chrome,并通过命令行参数指定要打开的页面。这可以通过Node.js脚本或命令行工具来实现。以下是一个简单的Node.js脚本示例,用于启动Chrome并打开特定的URL:

const { exec } = require('child_process');
const url = 'http://localhost:8080'; // 替换为你的uni-app运行时的URL
const chromePath = 'C:\\Program Files\\Google\\Chrome\\Application\\chrome.exe'; // 根据你的系统修改路径

exec(`${chromePath} --app=${url}`, (error, stdout, stderr) => {
  if (error) {
    console.error(`执行错误: ${error}`);
    return;
  }
  console.log(`stdout: ${stdout}`);
  console.error(`stderr: ${stderr}`);
});

注意,这种方法可能仍然会打开一个新的Chrome窗口,但你可以通过Chrome的命令行参数(如--app)来尝试使浏览器以应用模式运行,这可能有助于避免打开多个窗口。

4. 使用Chrome远程调试

另一种方法是使用Chrome的远程调试功能。你可以在Chrome中启动一个远程调试会话,并通过HBuilderX连接到这个会话。这通常用于移动设备的调试,但也可以尝试用于桌面浏览器。

结论

由于uni-app和HBuilderX的具体行为可能因版本而异,以上方法可能并不总是有效。如果问题持续存在,建议查看uni-app的官方文档或社区论坛,看看是否有其他开发者遇到并解决了相同的问题。

回到顶部