Migration

目录

从 9.2.0 到 9.3.0

在 JxBrowser 9.3.0 中,SelectMediaDeviceCallback 现在是异步的,以防止潜在的 EDT 死锁。在 macOS 上,Chromium bundle ID 已更改,升级后可能会出现一次性的权限重新请求。

SelectMediaDeviceCallback 现在是异步的 

SelectMediaDeviceCallback 现在继承 AsyncCallback 而不是 SyncCallback。 Lambda 的签名从带有一个参数并返回 Response 的形式,改为带有两个参数——paramsaction——返回 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