【问题标题】:Simulator Freezes With BrowserComponent模拟器因 BrowserComponent 而死机
【发布时间】:2021-06-17 11:47:16
【问题描述】:

我有一个 BrowserComponent,它加载了一个特定的 URL。

BrowserComponent browser = new BrowserComponent();
browser.setURL(url);
browser.addBrowserNavigationCallback(url -> {
    ...
    
    return false;
});

此 URL 重定向到另一个,新页面显示 JS 警报对话框。

模拟器在尝试加载带有对话框的页面时无异常或错误地死机,剩下的唯一选择就是关闭模拟器。

如何处理 BrowserComponent 中的 JS 对话框?

如果我可以自动关闭警报对话框,那就太好了。

我的运行日志:

JCEF Version = 84.4.1.262
CEF Version = 84.4.1
Chromium Version = 84.0.4147.105
initialize on Thread[AWT-EventQueue-0,6,main] with library path ~\.codenameone\cef\lib\win64
Added scheme search://
Added scheme client://
Added scheme cn1stream://

DevTools listening on ws://127.0.0.1:56113/devtools/browser/8a42a5d0-5ad5-4838-9027-ee9737d73370
AppHandler.stateHasChanged: NEW
AppHandler.stateHasChanged: INITIALIZING
AppHandler.stateHasChanged: INITIALIZED
Stream was closed
[EDT] 0:0:18,233 - Codename One revisions: 7dd4e7d08b3442d90959477ee52a5ae8c4361b29

[EDT] 0:0:18,234 - 
[0322/062422.651:INFO:CONSOLE(22)] "Here I am !!!", source: https://cn1app/streams/1 (22)

【问题讨论】:

  • 您在使用 CEF 吗? (是~/.cn1下的cef目录)。这与addBrowserNavigationCallback 有关吗?如果您删除该代码,它仍然会冻结吗?您是否收到任何浏览器事件,例如onLoad 等?您是否尝试过在 chrome 中进行调试(假设使用了 CEF)?见codenameone.com/blog/big-changes-jcef.html
  • @ShaiAlmog 是的,我正在使用cef。解压后的cef 文件夹在.codenameone 目录下。不,该问题与addBrowserNavigationCallback 无关,无论代码如何,它都会冻结。没有浏览器事件,所以我没有处理任何事件。 localhost:8088 无法在 Chrome 中加载,我收到 ERR_CONNECTION_REFUSED 错误。
  • 您确定选择了 CEF 吗?您在控制台中看到与此相关的任何内容吗?
  • @ShaiAlmog 我已经编辑了我的问题以包含我的控制台日志。

标签: codenameone


【解决方案1】:

此问题已在 Git 中通过此提交修复: https://github.com/codenameone/CodenameOne/commit/c4afc9d428a959e2f8dcf37594bed8ae81e467a2

它将包含在本周五的下一次 Cn1 更新中。

【讨论】:

  • 周五有更新吗?更新后我仍然遇到死锁。 JavaSEJar=175
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2014-01-02
  • 1970-01-01
  • 2014-08-06
  • 2016-08-24
  • 2023-03-31
相关资源
最近更新 更多