Migration
从 9.2.0 到 9.3.0
在 JxBrowser 9.3.0 中,SelectMediaDeviceCallback 现在是异步的,以防止潜在的 EDT
死锁。在 macOS 上,Chromium bundle ID 已更改,升级后可能会出现一次性的权限重新请求。
SelectMediaDeviceCallback 现在是异步的
SelectMediaDeviceCallback 现在继承 AsyncCallback 而不是 SyncCallback。
Lambda 的签名从带有一个参数并返回 Response 的形式,改为带有两个参数——params
和 action——返回 void 的形式。
9.2.0 及更早版本:
engine.mediaDevices().set(SelectMediaDeviceCallback.class, params -> {
MediaDevice selected = chooseDevice(params.mediaDevices());
return SelectMediaDeviceCallback.Response.select(selected);
});
9.3.0:
engine.mediaDevices().set(SelectMediaDeviceCallback.class, (params, action) -> {
MediaDevice selected = chooseDevice(params.mediaDevices());
action.select(selected);
});
proceed() 和 cancel() 的用法遵循相同模式:
9.2.0 及更早版本:
engine.mediaDevices().set(SelectMediaDeviceCallback.class,
params -> SelectMediaDeviceCallback.Response.cancel());
9.3.0:
engine.mediaDevices().set(SelectMediaDeviceCallback.class,
(params, action) -> action.cancel());
macOS 上的 Chromium bundle ID 已更改
Chromium bundle ID 已从 org.chromium.Chromium 更改为 com.teamdev.JxBrowser。
由于 macOS 通过 bundle ID 识别应用程序,因此在首次启动时会将更新后的构建视为新应用。
因此,之前授予应用程序的 macOS 权限——例如摄像头、麦克风、屏幕录制、通知或辅助功能访问——可能会被重新请求。授予一次后,正常操作即可恢复。
引用 bundle ID org.chromium.Chromium 的应用程序或企业策略必须更新为使用
com.teamdev.JxBrowser。