Changelog
This page collects the published release notes for wvbridge. Each version links to its original GitHub Release.
0.0.7 — 2026-08-12
Section titled “0.0.7 — 2026-08-12”Bug fixes
Section titled “Bug fixes”- Fixed JVM WebView integration for Compose 1.12.0-alpha01 and newer.
- Prevented deferred WebView updates from using an invalid native handle after the WebView had been closed.
0.0.6 — 2026-07-20
Section titled “0.0.6 — 2026-07-20”Bug fixes
Section titled “Bug fixes”- Improved WebView embedding and application shutdown stability on Linux X11, preventing X11 errors and shutdown deadlocks.
Features
Section titled “Features”- Added a bilingual documentation site with installation, quick-start, Controller, configuration, navigation, interception, and JavaScript interoperability guides, plus integrated API reference documentation. The README now links to the site.
Other changes
Section titled “Other changes”- Released
core0.0.6 and updated all desktop platform artifacts to 0.0.5.
Breaking changes
Section titled “Breaking changes”- None.
0.0.5 — 2026-07-10
Section titled “0.0.5 — 2026-07-10”Bug fixes
Section titled “Bug fixes”- Fixed a possible ANR when exiting the macOS JVM WebView.
- Fixed WebView auto-close behavior.
- Fixed macOS/Linux native boolean value mapping to improve JavaScript result parsing consistency.
- Improved Android WebView profile support and runtime capability checks.
Features
Section titled “Features”- Added
WebViewConfigfor passing configuration when creating a WebView. - Added custom User-Agent support.
- Added platform-specific configuration:
- Android supports passing an AndroidX WebKit
Profile. - iOS/macOS support selecting a persistent or non-persistent
WebsiteDataStore. - JVM desktop supports configuring the Windows WebView2 data directory, Linux WebKitGTK data/cache directories, and macOS WebKit data store mode.
- Android supports passing an AndroidX WebKit
- Added the
Interceptornavigation interceptor API, allowing top-level URL navigations to be allowed, rejected, redirected, or ignored. - Exposed
interceptoronWebViewController, so WebView behavior can be managed alongside the existingnavigatorandbridgeAPIs.
Breaking changes
Section titled “Breaking changes”CloseHandlemoved fromtop.kagg886.wvbridge.bridgetotop.kagg886.wvbridge.util; consumers must update their imports.rememberWebViewControllernow accepts aconfig: WebViewConfig = WebViewConfig()parameter. Existing calls keep the same default behavior; custom WebView creation settings should be passed through this parameter.
0.0.4 — 2026-06-26
Section titled “0.0.4 — 2026-06-26”Bug fixes
Section titled “Bug fixes”- Fixed iOS build issues and enabled the missing WebKit
postMessagepath used by the JavaScript bridge. - Fixed JVM WebView close ordering by closing the native WebView before Swing removal completes.
- Fixed native JVM startup stability by addressing a JNI load crash and adding safer native exception handling.
- Fixed JVM backend recovery after native WebView fatal errors by notifying Kotlin and recreating the panel when needed.
- Updated Linux desktop support to use the newer WebKitGTK 4.1 APIs instead of deprecated Linux WebKit APIs.
- Improved native lifecycle cleanup across Windows, Linux, and macOS by splitting JNI operations into focused entry points and unregistering event handlers explicitly.
- Fixed WebView2 process failure handling by reporting fatal backend failures to the JVM layer.
Features
Section titled “Features”- Added a new
jsbridgeartifact with typed JavaScript evaluation, typed message packets, native-to-JavaScript events, JavaScript-to-native calls, and request/reply APIs. - Added a common
JavaScriptBridgeAPI tocorefor evaluating scripts, registering document-start hooks, and receiving raw WebView messages. - Added
CloseHandleandWebMessageConsumercommon bridge primitives for cancellable bridge registrations. - Added platform implementations of the JavaScript bridge for Android, iOS, Windows JVM, Linux JVM, and macOS JVM.
- Added AndroidX WebKit integration for document-start script injection and
WEB_MESSAGE_LISTENERsupport. - Added native desktop support for script evaluation, document-start hooks, and web-message handlers through per-platform JNI bindings.
- Added process-wide logging APIs through
LoggerReceiverand native logger forwarding from desktop backends. - Added typed
JSValuemodels and conversion helpers for JavaScriptundefined,null, serializable JSON values, primitive script objects, and JavaScript errors. - Added suspendable message handlers with reply support so JavaScript can call native code and receive a result.
- Added
postMessageAndReceiveResultso native code can dispatch a typed event to JavaScript and await a callback result with timeout cleanup. - Added Maven Central badges and updated documentation for
core,jsbridge, and platform runtime artifacts. - Added feature support tables to the English and Chinese README files and module docs.
- Added a richer Compose sample app with browser controls, JavaScript evaluation dialogs, message bridge screens, platform-specific dialogs, and custom scrollbars.
- Added publication configuration for the new
jsbridgemodule and bumped Dokka and dependency metadata.
Breaking changes
Section titled “Breaking changes”- Renamed the main state API from
WebViewStatetoWebViewController. - Renamed
rememberWebViewStatetorememberWebViewController. - Changed the
WebViewcomposable parameter fromstatetocontroller. - Renamed the loading state holder from
state.statetocontroller.loadingState. - Replaced platform-specific
state.*.ktimplementations withcontroller.*.ktimplementations. - Changed
WebViewNavigator.goForward(url: String)togoForward()because the URL parameter was unused. - Added
WebViewController.bridge, so consumers now access JavaScript APIs through the remembered controller instead of a separate state object. - Updated sample and documentation code to use the controller-based API, so existing code written against 0.0.3 must update imports, variable names, and
WebViewarguments.
0.0.3 — 2026-06-21
Section titled “0.0.3 — 2026-06-21”Other changes
Section titled “Other changes”- Downgraded Kotlin to 2.3.10.
0.0.2 — 2026-06-18
Section titled “0.0.2 — 2026-06-18”Changes
Section titled “Changes”WebViewState.urlnow represents the most recently attempted top-level URL, even when navigation fails.- JVM WebView state now updates the URL as soon as page loading starts.
- Clarified that
refresh()reloads the most recently loaded page. UseloadUrl(state.url)to retry a failed navigation. - Refactored Java/JNI callback handling into a shared native module across Linux, macOS, and Windows.
- Improved native callback lifecycle, thread attachment, argument conversion, and exception handling.
- Upgraded Kotlin to 2.4.0, Android Gradle Plugin to 8.13.2, and Compose Multiplatform to 1.10.3.
- Core releases now automatically create a GitHub Release with generated release notes.
Breaking behavior change
Section titled “Breaking behavior change”WebViewState.urlmay differ from the currently displayed page after a failed navigation because it retains the attempted URL.
0.0.1 — 2026-03-31
Section titled “0.0.1 — 2026-03-31”Bug fixes
Section titled “Bug fixes”- Fixed the macOS rpath.