flutter webview 如何实现安卓webview的addJavascriptInterface 方法
来源:1-1 课程介绍与学习指南
慕用2283988
2023-11-16
遇到一个对接问题
只有安卓的对接文档 使用webview.addJavascriptInterface(new JsInsetfece(),"$api") 注入js 在webview中如何实现
写回答
1回答
-
CrazyCodeBoy
2023-11-17
这里是如何在Flutter中给WebView注入Javascript接口的方法:
1. 创建一个类实现Javascript接口,例如:
```dart
class JsInterface {
void hello(String name) {
print('Hello $name!');
}
}
```
2. 在WebView创建时,使用addJavascriptChannels方法注入这个接口:
```dart
WebView(
javascriptChannels: [
JavascriptChannel(
name: '$api',
onMessageReceived: (JavascriptMessage message) {
// 接收JS调用信息
}
),
].toSet(),
// 其他WebView配置
)
```
3. 在HTML中可以通过window.$api来调用这个接口的方法:
```js
window.$api.hello('World');
```
4. 在JavascriptChannel的onMessageReceived回调中可以接收到JS的调用并处理。
所以基本流程是:
1. Dart实现Javascript接口类
2. Flutter通过addJavascriptChannels注入接口
3. JS通过特定变量名调用接口方法
4. Dart端处理回调信息
这样就可以实现Flutter与JavaScript的互相调用。00
相似问题