# flutter_jsbridge_sdk **Repository Path**: pome/flutter_jsbridge_sdk ## Basic Information - **Project Name**: flutter_jsbridge_sdk - **Description**: flutter_jsbridge_sdk - **Primary Language**: Unknown - **License**: BSD-3-Clause - **Default Branch**: main - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2026-04-14 - **Last Updated**: 2026-04-14 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README ## 介绍 一个轻量级的 jsbridge,用于在 WebView 中的 flutter 和 javascript 之间发送消息。 ## 功能 - 不依赖于webview_flutter - 支持查看消息日志(debug模式) - 支持注册方法 - 支持取消注册方法 - 支持Flutter和Javascript之间方法互相调用,传递参数、接收返回结果 ## 开始 在工程的`pubspec.yaml`文件中添加`flutter_jsbridge_sdk`插件 ```yaml dependencies: flutter_jsbridge_sdk: ^1.0.2 ``` ## Flutter用法 ### 初始化配置 ```text WebView( onWebViewCreated: (WebViewController controller) { // 配置jsBridge jsBridge.init( messageRunner: controller.runJavascript, debug: true, ); }, initialUrl: _initialUrl!, javascriptMode: JavascriptMode.unrestricted, javascriptChannels: { // 配置JavascriptChannel JavascriptChannel( name: jsBridge.channelName, onMessageReceived: (JavascriptMessage message) { jsBridge.onMessageReceived(message.message); }, ), }, navigationDelegate: (NavigationRequest navigation) { return NavigationDecision.navigate; }, ) ``` #### 配置jsBridge ```text jsBridge.init( messageRunner: controller.runJavascript, debug: true, ); ``` | 参数 | 说明 | 默认值和类型 | 必传 | |---------------|--------------------------------------------------------|-------------------------|-----| | debug | 调试模式 | false(Boolean) | 否 | | messageRunner | 提供flutter执行js代码的能力,使用WebViewController的runJavascript即可 | (JSBridgeMessageRunner) | 是 | #### 配置JavascriptChannel ```text JavascriptChannel( name: jsBridge.channelName, // 必须使用jsBridge.channelName onMessageReceived: (JavascriptMessage message) { jsBridge.onMessageReceived(message.message); }, ), ``` ### 注册方法 ```text jsBridge.registerHandler('FlutterEcho', (Object? data) async { // return Future.value('success response from flutter'); // return 'success response from flutter'; return Future.error('fail response from flutter'); // throw Exception('fail response from flutter'); }); ``` | 参数 | 说明 | 默认值和类型 | 必传 | |-------------|---------------------------------------------------------------------------------------------------------------|-------------------|-----| | handlerName | 注册的方法名称 | (String) | 是 | | handler | 注册的方法实现,返回Future
data:发送过来的数据
Future.value:flutter端业务处理成功时通知js端
Future.error:flutter端业务处理失败时通知js端 | (JSBridgeHandler) | 是 | ### 取消注册方法 ```text jsBridge.unregisterHandler('FlutterEcho'); ``` | 参数 | 说明 | 默认值和类型 | 必传 | |-------------|---------|--------|-----| | handlerName | 注册的方法名称 | (void) | 是 | ### 调用方法 ```text try { final String data = await jsBridge.callHandler( 'JSEcho', data: 'request from flutter', ); _log('[call handler] success response: $data'); } catch (err) { _log('[call handler] fail response: $err'); } ``` | 参数 | 说明 | 默认值和类型 | 必传 | |-------------|--------------------------------------------------------------------------|-----------|-----| | handlerName | 调用的方法名称 | (String) | 是 | | data | 参数
data:发送过来的数据 | (Object?) | 否 | | return | 返回Future对象
Future.value:js端业务处理成功时的回调
Future.error:js端业务处理失败时的回调 | (Future) | 是 | ## JS用法 js端的使用基本跟flutter保持一致,具体参考 [javascript-jsbridge-sdk](https://github.com/TryImpossible/javascript-jsbridge-sdk)