Flutter学习(八)Flutter_Boost接入

背景

基于安卓的原生项目,进行Flutter的接入,进行混合开发。

参考链接

官方地址:link

fullter_boost配置:link

git代理配置:link

kotlin语法集成:link

混合开发的坑:link

开发环境

as4+
jdk1.8
gradle5.1.1

思路与实现

备注:从上面的开发环境可以看到,其实项目的gradle比较老旧,所以,要注意flutter的三方库是否兼容。

首先,Flutter_Boost是作为一个Module引入到原生项目里面的,怎样接入,官方文档都有写,这里只记录坑。

(1)setting.gradle的文件配置

一般情况下,setting文件,对于老项目,都是goovy的语法,所以一般对应官方文档,都是没有问题的,如下图:
setting.gradle
但是,如果是比较新的项目,这里setting文件,就是kts结尾了,就是用Kotlin语法写的setting文件,这个时候用不了goovy的语法了,可以直接新建一个xxx.gradle文件,该文件还是按照官方的写法,然后在setting文件中apply即可,详细链接教程如下:
github思路
上图引用了github的一种方法。

(2)坑二,就是flutter_boost依赖问题

历史原因,github总会被墙,所以这个时候,git就要设置代理了。这里提供设置方式。一般使用梯子的情况下,找到端口号设置即可,如下:

git config --global http.proxy "127.0.0.1:1080"

这里要注意,端口要对应上梯子的端口。
而回复设置,则是一下的指令:

git config --global --unset http.proxy
git config --global --unset https.proxy

上述指令,就是配置git的代理问题,能让你成功依赖上flutter_boost。至于梯子,自行想办法解决。

(3)Flutter_boost和getX如何兼容

方案有很多种,这里说一下其中一种方案:
getx只做状态管理,路由交给boost。
而初始化的时候,代码如下:
在这里插入图片描述

重写文档中的FlutterBoostApp为GetMaterialApp即可,让其返回GetX的app。
然后!!!!
对于controller的管理,使用生命周期监听的方式进行统一管理。核心代码如下:

 PageVisibilityBinding.instance.addGlobalObserver(AppLifecycleObserver());

上述代码,就是监听页面的生命周期,进行回调,接下来,我们就要在生命周期回调的时候,统一处理getx的controller了,核心代码如下图:

在这里插入图片描述
这里通过RouterReportManager对路由参数进行管理,其内部源码,也是会执行到getx的controller内部的,所以能起到管理getx中的controller生命周期的作用。

完成上述步骤后,即可集成。
若有问题,估计也就剩下版本对应问题了,这里不在一一解析。

that’s all--------------------------------------------------------

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/457649.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Tauri 的基本使用笔记

文章目录 前言如何将 Tauri 集成到前端项目?进程间通信(命令)const invoke window.__TAURI__.invoke; 进程间通信(事件)前端 ⇒ RustRust ⇒ 前端我的疑问 开发时的一些技巧用代码打开前端的开发者工具让 Tauri 不要监听文件Rus…

re:从0开始的CSS学习之路 3. CSS三大特性

0. 写在前面 很多的学习其实并不知道在学什么,学一个新东西学着学着就变成了抄代码,背概念。把看视频学习变成了一个赶进度的任务,到头来只学到了一些皮毛。 文章目录 0. 写在前面1. CSS三大特性——层叠性2. CSS三大特性——优先级3. CSS三…

【OpenVINO™】在 MacOS 上使用 OpenVINO™ C# API 部署 Yolov5 (下篇)

在 MacOS 上使用 OpenVINO™ C# API 部署 Yolov5 (下篇) 项目介绍 YOLOv5 是革命性的 "单阶段"对象检测模型的第五次迭代,旨在实时提供高速、高精度的结果,是世界上最受欢迎的视觉人工智能模型,代表了Ult…

VSCode无法启动:Waiting for server log...

问题基本情况 [13:30:20.720] > code 1.86.0 (commit 05047486b6df5eb8d44b2ecd70ea3bdf775fd937) [13:30:20.724] > Running ssh connection command... /var/fpwork/reiss/vscdata/server/cplane/.vscode-server/code-05047486b6df5eb8d44b2ecd70ea3bdf775fd937 comman…

ES监控方法以及核心指标

文章目录 1. 监控指标采集1.1 部署elasticsearch_exporter1.2 prometheus采集elasticsearch_exporter的暴露指标1.3 promethues配置告警规则或者配置grafana大盘 2. 核心告警指标2.1 es核心指标2.2 es容量模型建议 3. 参考文章 探讨es的监控数据采集方式以及需要关注的核心指标…

运维必会篇-日志(错误日志,二进制日志,查询日志,慢查询日志)

日志 错误日志 错误日志是 MySQL 中最重要的日志之一,它记录了当 mysqld 启动和停止时,以及服务器在运行过 程中发生任何严重错误时的相关信息。当数据库出现任何故障导致无法正常使用时,建议首先查看此日 志。 该日志是默认开启的&#x…

统一身份认证系统架构设计与实践总结

随着互联网的快速发展和应用的普及,人们在各个网站和应用上需要不同的账号和密码进行身份认证。为了解决这个问题,统一身份认证系统应运而生。本文将总结统一身份认证系统的架构设计与实践经验,帮助读者了解如何设计和实现一个高效、安全的统…

代码随想录算法训练营第二八天 | 分割 子集

目录 复原IP地址子集子集 II LeetCode 93.复原IP地址 LeetCode 78.子集 LeetCode 90.子集II 复原IP地址 一些字符串的基本操作不会 s.insert(i 1, ‘.’); s.deleteCharAt(i 1); class Solution {List<String> result new ArrayList<>();public List<St…

uniapp canvas游标卡尺效果

效果 根据公司业务仿照写的效果。原项目从微信小程序转uniapp,未测试该效果在android端效果。 uniapp直接使用canvas不可做子组件,否则无效果显示,其次显示时要考虑页面渲染超时的问题。 如效果所见,可以设置取值精度。 gitee地址:project_practice: 项目练习 - Gitee.…

【sentinel流量卫兵配置持久化到Nacos】

sentinel流量卫兵配置持久化到Nacos 概述&#xff1a; 一、添加配置二、配置说明限流规则配置&#xff1a;降级规则配置&#xff1a;热点规则配置&#xff1a;授权规则配置&#xff1a;系统规则配置&#xff1a; 三、服务整合 概述&#xff1a; 控制台配置的参数&#xff0c;默…

python 动态显示数据。

界面显示动态的数据。 from time import sleep import serialimport tkinter as tklis[1,10,40] # 打开串行端口 ser serial.Serial(COM3, 9600) # 9600为波特率&#xff0c;根据实际情况进行调整# 创建窗口和画布 window tk.Tk() canvas tk.Canvas(window, width400, heig…

国产航顺HK32F030M: 超声波测距模块串口通信数据接收与处理

参考代码 /************************************************************************************************** * file usart_async_tx_no_int_rx_rxneint.c * brief 异步串口通信例程, 通过查询TXE标志发送数据,通过RXNE中断接收数据,当中断接收到数据后会将 * …