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

Flutter 嵌套H5 传参数

你可以通过在加载 H5 页面时,将 token 作为 URL 参数拼接,或者通过 WebView 的 JavaScript 通信功能(如 runJavaScript 或 addJavaScriptChannel)传递 token。常用方式如下:

方式一:URL 拼接参数

假设你的 token 是 myToken,可以这样:

// filepath: [home.dart](http://_vscodecontentref_/0)
class HomePage extends StatelessWidget {final String token;const HomePage({super.key, required this.token});@overrideWidget build(BuildContext context) {final url = 'https://www.baidu.com?token=$token';return Scaffold(appBar: AppBar(title: const Text('首页')),body: SafeArea(child: WebViewWidget(controller: WebViewController()..setJavaScriptMode(JavaScriptMode.unrestricted)..loadRequest(Uri.parse(url)),),),);}
}

方式二:通过 JavaScript 注入

如果不想暴露在 URL,可以在页面加载完成后注入 token:

// filepath: [home.dart](http://_vscodecontentref_/1)
class HomePage extends StatelessWidget {final String token;const HomePage({super.key, required this.token});@overrideWidget build(BuildContext context) {final controller = WebViewController()..setJavaScriptMode(JavaScriptMode.unrestricted)..loadRequest(Uri.parse('https://www.baidu.com'))..setNavigationDelegate(NavigationDelegate(onPageFinished: (url) {controller.runJavaScript("window.setToken && window.setToken('$token');");},),);return Scaffold(appBar: AppBar(title: const Text('首页')),body: SafeArea(child: WebViewWidget(controller: controller),),);}
}

这种方式需要 H5 页面实现 window.setToken 方法来接收 token。

你可以根据实际需求选择合适的方式。这种方式需要 H5 页面实现 window.setToken 方法来接收 token。

你可以根据实际需求选择合适的方式。

http://www.xdnf.cn/news/9947.html

相关文章:

  • 生成式人工智能:重塑社会的双刃剑与人类文明的抉择
  • 技术创新如何赋能音视频直播行业?
  • IM系统的负载均衡
  • windows无法安装到这个磁盘,选中的磁盘采用gpt分区仪式
  • C++项目中使用CMake编译
  • WPF响应式UI的基础:INotifyPropertyChanged
  • OpenWebUI(1)源码学习构建
  • 公链地址生成曲线和算法
  • spring-boot redis lua脚本实现滑动窗口限流
  • 如何以 9 种方式将照片从 iPhone 传输到笔记本电脑
  • python打卡day40
  • STM32 搭配 嵌入式SD卡在智能皮电手环中的应用全景评测
  • 30V/150A MOSFET 150N03在无人机驱动动力系统中的性能边界与热设计挑战
  • 鸿蒙 HarmonyOS - SideBarContainer 组件自学指南
  • OleDbParameter.Value 与 DataTable.Rows.Item.Value 的性能对比
  • RCU初步分析
  • leetcode动态规划—打家劫舍系列
  • iOS 使用CocoaPods 添加Alamofire 提示错误的问题
  • 改写自己的浏览器插件工具 myChromeTools
  • RSTP介绍加实操
  • 2025年05月30日Github流行趋势
  • MyBatisPlus--快速入门
  • 【计算机网络】传输层TCP协议——协议段格式、三次握手四次挥手、超时重传、滑动窗口、流量控制、
  • 得物前端面试题及参考答案(精选50道题)
  • CppCon 2014 学习:Making C++ Code Beautiful
  • 测试分类详解
  • 【C++】22. 红黑树封装实现Mymap和Myset
  • 【Python】第一弹:对 Python 的认知
  • 计算机网络 HTTP篇常见面试题总结
  • 【前端】macOS 的 Gatekeeper 安全机制阻止你加载 bcrypt_lib.node 文件 如何解决