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的互相调用。
0
0

Flutter从入门到进阶 实战携程网App 一网打尽核心技术

解锁Flutter开发新姿势,,系统掌握Flutter开发核心技术。

4788 学习 · 3270 问题

查看课程