flutter boost使用简介(踩坑记录,持续更新)
前言
最近在研究android和flutter的混合开发。插件模式调用原生的混合模式已经在项目中使用,也暴露出一些问题,
最突出的问题就是flutter中对webview的支持,会出现各种各样奇怪的问题还没办法解决(也许修改flutter源码可
解决)。所以考虑尝试用原生打开flutter页面的混合方式进行开发。咸鱼团队也推出了这种混合开发模式的框架
flutter boost。下面就是我在使用该框架中遇到的问题以及解决的方法,持续更新
环境说明
开发工具:Android Studio
Flutter版本:2.0.3
Flutter Boost版本:v3.0-hotfixes
集成过程
flutter boost项目地址
先吐槽下,项目介绍里提供的集成说明简陋的一批,按它的方法能成功集成才有鬼
创建一个安卓项目:DemoOne
给项目添加flutter module:flutter_module(可是使用命令行,也可以用IDE的插件完成,我这边是通过IDE的插件完成的,需要IDE安装flutter和dart两个插件)
添加完成后,settings.gradle和build.gradle会有以下变化
将flutter boost以插件的方式配置到flutter_module里
在build.gradle中添加flutter boost依赖,如下图
完成上面3步,在真机上运行安卓项目,如果能正常启动,恭喜你,可以继续集成之路了。我运行安卓项目的时候很诡异,第一次能正常启动,我按上面的步骤又搭了一遍项目,报错!!!各种搜不到解决方法,我就在真机上debug运行了flutter_module项目,再运行安卓项目,正常了!!!!!!
- 安卓项目中创建MyApplication类,继承自FlutterApplication(注意,不是原生的Application),然后在onCreate中初始化flutter boost
class MyApplication : FlutterApplication() {override fun onCreate() {super.onCreate()//初始化flutter boost/*** 1.使用ENGINE_ID初始化flutter engine,全局共享一个engine* 2.设置消息代理*/FlutterBoost.instance().setup(this, MyFlutterBoostDelegate(), null)} }
- 点击按钮打开flutter页面
private lateinit var openFlutterBtn:Buttonoverride fun onCreate(savedInstanceState: Bundle?) {super.onCreate(savedInstanceState)setContentView(R.layout.activity_main)openFlutterBtn = findViewById(R.id.open_flutter_btn)openFlutterBtn.setOnClickListener {openFlutter()}}private fun openFlutter(){val params = HashMap<String, Any>()params["test1"] = "v_test1"params["test2"] = "v_test2"val intent = FlutterBoostActivity.CachedEngineIntentBuilder(FlutterBoostActivity::class.java, FlutterBoost.ENGINE_ID).backgroundMode(FlutterActivityLaunchConfigs.BackgroundMode.opaque).destroyEngineWithActivity(false).url("flutterPage").urlParams(params).build(this)startActivity(intent)}
针对打开flutter页面,我大概整理了一下关键的几个类和大概的一个流程
flutter boost使用简介(踩坑记录,持续更新)相关推荐
- uniapp(踩坑记录 持续更新)
20221010 uniapp indicator-dots样式修改 <style>/* 默认指示点的样式 */.screen-body .wx-swiper-dot {width: 6r ...
- 【威联通QNAP】TS-216折腾踩坑记录(更新于22.11.22)
本篇博客记录了我使用威联通ts216的折腾记录.nas购入于2022年双11,京东自营 关于系统初始化等内容不做记录,这部分网上可以找到很多教程,只要是威联通,方法都是一样的 初始化参考视频 [村雨] ...
- 安卓 Native+Flutter 应用开发入门资料、亲身实战及踩坑记录
安卓 Native+Flutter 应用开发实战及踩坑记录,练手入门项目:FluLearn 入门资料 第三方共享包检索(国内).第三方共享包检索(国外) Flutter开发环境搭建(中文版).Flut ...
- Laya小游戏上架Vivo平台踩坑记录(持续更新)
Laya小游戏上架Vivo平台踩坑记录(持续更新) 个人踩坑的一些记录,大佬留情! 一些快捷键: Ctrl+P 搜索脚本文件 Ctrl+Y 恢复操作 Ctrl+Z 撤回操作 Ctrl+F 搜索字段 C ...
- Laya小游戏上架Oppo平台踩坑记录(持续更新)
Laya小游戏上架Oppo平台踩坑记录(持续更新) 个人踩坑的一些记录,大佬留情! 一些快捷键: Ctrl+P 搜索脚本文件 Ctrl+Y 恢复操作 Ctrl+Z 撤回操作 Ctrl+F 搜索字段 C ...
- TVM: Deep Learning模型的优化编译器(强烈推荐, 附踩坑记录)
本文作者是阿莱克西斯,原载于知乎,雷锋网(公众号:雷锋网)获得授权转载. (前排提醒,本文的人文内容部分稍稍带有艺术加工,请保持一定的幽默感进行阅读) 关注我最近想法的同学应该知道我最近都在把玩 TV ...
- AirSim学习和踩坑记录(不定时更新)
版权声明:本文为博主原创文章,遵循Creative Commons - Attribution-ShareAlike 4.0 International - CC BY-SA 4.0版权协议,转载请附 ...
- Elasticserch 5.6到Elasticsearch7.11跨版本升级踩坑记录
Elasticserch 5.6到Elasticsearch7.11跨版本升级踩坑记录 1.背景 公司老的业务使用的是Elasticsearch5.6版本,使用的客户端是TransportClient ...
- STF环境搭建运行及踩坑记录
最初是在centos环境上搭建STF,由于种种依赖缺失.nodejs/npm版本不兼容.以及无解的"Segmentation fault (core dumped)"错误,最终还是 ...
- Slam学习笔记——ROS踩坑记录
Slam学习笔记--ROS踩坑记录 1. 安装 2. ROS文件系统 2.1 工作区 2.2 包package 2.2.1 包的操作 2.2.2 描述文件package.xml 2.3 节点node ...
最新文章
- PHP沉思录-第三篇-Smarty-左轻侯-《程序员》2007年10月号
- FreeMark将long类型的时间格式化
- 微服务最佳实践:MSE 微服务引擎
- C语言高级编程:数组指针与数组
- 论文浅尝 | AutoETER: 用于知识图谱嵌入的自动实体类型表示
- 在GPU上运行,性能是NumPy的11倍,这个Python库你值得拥有
- 数据库-MySQL-JDBC框架
- ×××与字符串的相互转换
- rmmod不能卸载驱动
- 数据结构链表(C语言实现)
- 苹果电脑如何改id?这篇文章帮你搞定
- 2019 SWERC
- 知名建筑景观3D可视化渲染软件lumion10.5
- 嵌入式行业需要什么样的技术人才?
- 汇编指令——bic(位清除)、orr(位或)、eor (异或)
- 写作历时一个月,长达8000字的年终总结——[2022年终总结]不要怕,请勇敢的向前走
- dubbo环境的简单搭建
- 大数据python试卷_大数据分析的python基础-中国大学mooc-试题题目及答案
- 【不收藏一定后悔】超智能三子棋——和电脑比一把
- SSL证书、 der、 cer、 pem区别
热门文章
- 太可了!阿里巴巴发布第一台「云电脑」,程序员再也不怕丢电脑了...
- 饥荒如何修改服务器人数上限,饥荒联机版房间人数上限修改图文教程_饥荒联机版房间人数上限怎么修改_牛游戏网...
- 如何在Flash里面使用魔术棒工具
- uniapp连接数据库
- MySQL免安装版安装探索
- 手工实现各种脱壳后的修复
- 《爱情路过广州拐角》经典简摘
- 机顶盒中加密芯片的应用
- 魔兽世界1月14日服务器维护,魔兽世界2021年1月14日更新内容介绍 职业平衡调整一览...
- 小学计算机课信息就在我身边教案,人教版小学信息技术教案.doc