flutter版app对接方式

webview使用的是三方flutter_inappwebview组件,对jsbridge有些许不同,比如关于h5调用app的方式 如需使用:window.flutter_inappwebview.callHandler('方法名称',传递参数) ,请参照此文档进行对接

一、全局说明

在webview的url地址中需加上embedded参数,值固定为flutter 测试地址

二、文件下载

2.1方法说明

handlerNameappDownFile

2.2传参(web => flutter)

以json对象的形式传递
参数名称类型描述
fileUrlstring下载文件的地址
fileNamestring下载文件的文件名
调用案例: const params = { fileUrl: "xxx", fileName: "文件名称" } const res = await window.flutter_inappwebview.callHandler("appDownFile", params)

2.3响应(flutter => web)

以boolean参数的形式传递
参数名称类型描述
resultboolean文件是否下载完成(true/false)
调用案例: controller.addJavaScriptHandler( handlerName: "appDownFile", callback: (data) async { // 获取权限的流程开始 // ... // 获取完成 return true; // 成功为true,失败为false }; );

2.4方法对接说明

该方法主要用于会话页面当中文件下载功能,由于web端无法实现将文件存放在对应的目录中,所以需要app端协助存储。

三、获取权限

3.1方法说明

handlerNamecheckPermission

3.2传参(web => flutter)

以json对象的形式传递
参数名称类型描述
checkPermissionenum需要获取的参数列表
调用案例: const params = { checkPermission: "record_audio_camera" } const res = await window.flutter_inappwebview.callHandler("checkPermission", params)

3.3响应(flutter => web)

以boolean参数的形式传递
参数名称类型描述
resultboolean权限是否获取成功(true/false)
调用案例: controller.addJavaScriptHandler( handlerName: "checkPermission", callback: (data) async { // 获取权限的流程开始 // ... // 获取完成 return true; // 成功为true,失败为false }; );

3.4方法对接说明

该方法主要用于获取app应用权限,在web端当中有一些需要调用设备权限功能,但web端无法获取到对应权限也无法判断当前app是否拥有权限,所以需要调用这个方法。

3.5checkPermission说明

权限标识类型描述
record_audio_camerastring获取麦克风以及摄像头权限
record_audiostring获取麦克风权限
file_camerastring获取文件以及摄像头权限
filestring获取文件权限
record_audiostring获取麦克风权限
2025-04-16