IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> 移动开发 -> flutter 用 webview_flutter 与 h5 交互 -> 正文阅读

[移动开发]flutter 用 webview_flutter 与 h5 交互

这里是本地 h5 页面,需要在 pubspec.yaml 里添加资源

<!DOCTYPE html>
<html lang="en">

<head>
  <meta charset="UTF-8">
  <meta name="viewport" content="width=device-width, initial-scale=1.0">
  <title>html demo</title>
</head>

<body>
  <div style="margin-top: 80px;" id="fromFlutter"><span>Flutter发送过来的消息是: </span></div>
  <div id="toFlutter"><span>我发送给Flutter的消息是:</span></div>
  <button onclick="sendMessageToFlutter('这里是来自JavaScript的方法')">sendMessageToFlutter</button>
</body>
<script>
  // 这个方法是用来给Flutter调用的(即:Flutter调用js方法)
  function fromFlutterMessage(message) {
    document.getElementById("fromFlutter").innerHTML = message;
    return true;
  }

  // 这个方法是用来发送一个消息给Flutter的(即:js调用Flutter方法)
  function sendMessageToFlutter(message) {
    toFlutterMessage.postMessage(message);
    document.getElementById("toFlutter").innerHTML = message;
  }
</script>

</html>

flutter webView 部分

              javascriptChannels: <JavascriptChannel>[
                JavascriptChannel(
                    ///方法名要与h5页面方法一致
                    name: "toFlutterMessage",  
                    onMessageReceived: (JavascriptMessage message) {
                      print(message.message);
                    }),
              ].toSet(),
              onWebViewCreated: (WebViewController webViewController) async {
                ///h5页面资源位置
                String filePath = 'assets/h5.html';  
                String fileText = await rootBundle.loadString(filePath);
                _webController.loadUrl(Uri.dataFromString(fileText,
                        mimeType: 'text/html',
                        encoding: Encoding.getByName('utf-8'))
                    .toString());
              },
              onPageFinished: (String url) {
                  ///Flutter调用js方法
                  _webController
                      .evaluateJavascript("fromFlutterMessage('你好呀')")
                      .then((value) => print("发送成功"));
              },
  移动开发 最新文章
Vue3装载axios和element-ui
android adb cmd
【xcode】Xcode常用快捷键与技巧
Android开发中的线程池使用
Java 和 Android 的 Base64
Android 测试文字编码格式
微信小程序支付
安卓权限记录
知乎之自动养号
【Android Jetpack】DataStore
上一篇文章      下一篇文章      查看所有文章
加:2022-10-17 12:46:08  更:2022-10-17 12:49:28 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年5日历 -2024/5/19 22:20:46-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码