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

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
http://www.xdnf.cn/news/1357.html

相关文章:

  • C语言中的递归1.0
  • 在C#串口通信中,一发一收的场景,如何处理不同功能码的帧数据比较合理,代码结构好
  • Transformer:引领深度学习新时代的架构
  • 深入探究Python中`__init__.py`文件的奥秘
  • SOA半导体光放大器在光纤光栅解调系统中的应用分析
  • python三维矩阵的维度
  • 将输入帧上下文打包到下一个帧的预测模型中用于视频生成
  • 什么是区块?
  • 【Java】Hibernate的检索方式的概述
  • pytest心得体会
  • Linux避免文件误删详解(Linux Avoids File Deletion Errors with Detailed Explanation)
  • 深入剖析TCP协议(内容一):从OSI与TCP/IP网络模型到三次握手、四次挥手、状态管理、性能优化及Linux内核源码实现的全面技术指南
  • Python----深度学习(神经网络的过拟合解决方案)
  • 单调栈-每日温度
  • 1、AI及LLM基础:OpenAI 开发
  • 手写深拷贝函数
  • 基于RabbitMQ实现订单超时自动处理
  • 服务器编译环境配置及数据接收脚本编写(11)
  • 蓝桥杯 19. 最大比例
  • 【3】CICD持续集成-k8s集群中安装Jenkins-agent(主从架构)
  • 【数据可视化-24】巧克力销售数据的多维度可视化分析
  • 解读大型语言模型:从Transformer架构到模型量化技术
  • 3小时速通Python-Python学习总部署、总预览(一)
  • transformer 解码器和输出部分结构
  • gradle可用的下载地址(免费)
  • Linux 内核中 cgroup 子系统 cpuset 是什么?
  • nodejs模块暴露数据的方式,和引入(导入方式)方式
  • 高级java每日一道面试题-2025年4月21日-基础篇[反射篇]-如何使用反射获取一个类的所有方法?
  • 移动通信运营商对MTU的大小设置需求
  • 【codeforces思维题】前缀和的巧妙应用(2053B)