当前位置: 首页 > news >正文

flutter和vue3项目利用webview_flutter插件通信

近来需要实现一个功能:

flutter项目的会员中心页面跳转到vue3项目的活动页,点击该活动页面的“签到”按钮后到flutter项目的积分中心页面进行签到,签到成功后手动返回上一个页面即vue3活动页面的按钮状态更新问题(需更新为“已签到”)。

实现方法:通过webview_flutter
webview_flutter 是 Flutter 官方提供的一个跨平台 WebView 插件,用于在 Flutter 应用中嵌入网页内容。它基于 Android 的 WebView 和 iOS 的 WKWebView 实现,支持多平台(包括 Android 和 iOS),并提供了丰富的功能。

pub add webview_flutter

pubspec.yaml文件里:

webview_flutter:git:url: "https://gitee.com/openharmony-sig/flutter_packages.git"path: "packages/webview_flutter/webview_flutter"

所需要使用处引入:

import 'package:webview_flutter/webview_flutter.dart';

步骤一:

须实现:flutter项目的会员中心页面跳转到vue3项目的活动页

会员中心的flutter代码:
InkWell(onTap: () async {// 根据点击的轮播图索引设置对应的 URLString targetUrl = widget.url;// 提前声明 controller 变量late WebViewController controller;controller = WebViewController()..setJavaScriptMode(JavaScriptMode.unrestricted)..loadRequest(Uri.parse(targetUrl))..setNavigationDelegate(NavigationDelegate(onPageFinished: (String url) {},));// 跳转到 WebView 页面await Navigator.push(context,MaterialPageRoute(builder: (context) => WebViewWidget(controller: controller,),),);
}

步骤二:

须实现:点击该活动页面的“签到”按钮后到flutter项目的积分中心页面进行签到。

处理方法:通过 JavaScript 通道(JavaScriptChannel),以实现 Flutter 代码与 WebView 中 JavaScript 代码之间的双向通信。

vue3页面代码:

const toComplete = () => {if (window.BackToFlutter) {window.BackToFlutter.postMessage('');}
};

flutter项目的会员中心页面代码(触发回调函数跳到积分中心页面):

InkWell(onTap: () async {// 根据点击的轮播图索引设置对应的 URLString targetUrl = widget.url

相关文章:

  • 亚信安全与联通数科达成战略合作,成立联信事业部
  • 信号与槽的认识
  • 在统信UOS1060上进行全盘备份
  • 编写 Markdown 技术文档示例
  • 【计算机视觉】CV项目实战- SiamMask 单阶段分割跟踪器
  • MCP Java SDK 与 Spring AI 强强联手:简化 Java AI 开发流程
  • spark—kafka
  • Linux脏页相关参数
  • unity编辑器的json验证及格式化
  • 哪些心电图表现无缘事业编体检呢?
  • AIGC vs 人类创作者:是竞争还是协作?
  • Kafka 保证多分区的全局顺序性的设计方案和具体实现
  • Linux中使用tar命令打包并按指定日期格式命名文件
  • WebXR教学 05 项目3 太空飞船小游戏
  • 安装Jupyter Notebook 之不断报错 差点放弃版
  • 第一篇:Django简介
  • 【网络原理】TCP提升效率机制(一):滑动窗口
  • Linux内核编译全流程详解与实战指南
  • 【正则表达式】核心知识点全景解析
  • MySQL数据库精研之旅第十期:打造高效联合查询的实战宝典(一)
  • 重庆一幼儿园回应招聘硕士幼教:统一标准,江北区学前教育岗的硬性要求
  • 甘肃省政府原副省长赵金云严重职务违法被开除公职
  • 李公明|“小时光”与大时代中的地铁阅读者
  • 南北皆宜的“中国酒都”宿迁:下一程如何更“醇厚绵长”
  • 骑手眼中的“外卖战”
  • 88岁罗马教皇方济各突然去世,遗嘱内容对外公布