Repository navigation
侧边栏浏览器「在系统浏览器中打开」按钮点击无反应(Desktop 0.2.1-rc.5) #11987
Unanswered
chenyadong1101
asked this question in
Q&A
Replies: 1 comment
|
我对照了当前 可以在 0.2.1-rc.5 的测试环境按顺序确认:
建议日志只记录协议、事件阶段和脱敏错误,不贴完整 URL 或查询参数。Cmd/Ctrl+点击涉及不同的导航事件,在确认事件链以前,暂时不要认定两个现象同源。 以上依据当前 |
0 replies
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Uh oh!
There was an error while loading. Please reload this page.
环境
0.2.1-rc.5(macOS / Apple Silicon,Electron 44.7)复现步骤
预期:默认浏览器打开当前地址。
涉及代码
packages/client/ui-sidebar-browser/src/client/view/BrowserBody.tsx:99-100disabled: externalUrl === undefined;onClick: () => { window.open(externalUrl, "_blank", "noopener,noreferrer") }apps/desktop/src/main.ts:295-298(安装版app.asar/lib/main.js里同一段)setWindowOpenHandler(({ url }) => { if (["http:","https:"].includes(new URL(url).protocol)) shell.openExternal(url); return { action: "deny" } })已做的排查
dsh.sidebar-browser.v1.session-…):navigation.status = "known"、request.target有 url,即unknown === false、externalUrl有值,按钮不是 disabled 状态。webPreferences(nodeIntegration:false / contextIsolation:true / sandbox:true / webviewTag:true)、同样注册 privileged 自定义协议供页、同样的setWindowOpenHandler,window.open(url, "_blank", "noopener,noreferrer")能正常触发 handler。说明这条链在该 Electron 版本上是通的。初步判断:按钮的
window.open没有走到主进程 handler,或shell.openExternal静默失败。客户端侧没有找到任何对window.open的改写(gh search code "window.open ="无命中)。相关问题:Cmd/Ctrl+点击链接同样毫无反应——修饰键没有单独分支,而 anchor 的默认导航被主进程
will-navigate拦掉了,看起来两个问题同源。(临时规避:把「网页链接默认打开方式」改成「默认浏览器」,链接就会直接在 Chrome 里打开;或复制地址栏。)
All reactions