uni-app 运行到Chrome时每次运行打开的都是新的Chrome实例的Bug并未修复
uni-app 运行到Chrome时每次运行打开的都是新的Chrome实例的Bug并未修复
操作步骤
- 双击打开HBuilder X;
- 点击要运行的项目;
- 点击【运行】->【运行到浏览器】->【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 |
具体表现在:打开的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的官方文档或社区论坛,看看是否有其他开发者遇到并解决了相同的问题。