电脑知识|欧美黑人一区二区三区|软件|欧美黑人一级爽快片淫片高清|系统|欧美黑人狂野猛交老妇|数据库|服务器|编程开发|网络运营|知识问答|技术教程文章 - 好吧啦网

您的位置:首頁(yè)技術(shù)文章
文章詳情頁(yè)

Flutter 和 Android 互相傳遞數(shù)據(jù)的實(shí)現(xiàn)

瀏覽:99日期:2022-09-21 18:24:35

(一)Android代碼設(shè)置

1,打開(kāi)Android Studio 創(chuàng)建一個(gè)應(yīng)用程序,包名dev.android.book 2, 創(chuàng)建一個(gè)MyApplication ,應(yīng)用在AndroidManifest.xml文件中的application的android:name屬性上 3,創(chuàng)建FlutterEngine的實(shí)例,然后把這個(gè)實(shí)例添加到緩存的FlutterEngine當(dāng)中 4,創(chuàng)建MethodChannel的實(shí)例,指定一個(gè)此實(shí)例的唯一字符串,例如dev.android.book/add 5, 設(shè)置methodChannel方法回調(diào)函數(shù),接收Flutter通過(guò)MethodChannel發(fā)過(guò)來(lái)的消息 6,F(xiàn)lutter發(fā)過(guò)來(lái)的消息眾多,是通過(guò) MethodCall對(duì)象中的方法名來(lái)判斷 7,Android端向Flutter發(fā)送消息,也是通過(guò)methodChannel對(duì)象的的invokeMethod方法

針對(duì)以上的各個(gè)步驟添加說(shuō)明

1,很簡(jiǎn)單就是打開(kāi)Android studio =>File=>New Project=>Select a Project Template=>input Name, Package name等=>Finish

2,創(chuàng)建BookApplication 目的是 預(yù)初始化FlutterEngine,啟動(dòng)Flutter有三種方式

a,第一種方式,就是創(chuàng)建默認(rèn)的FlutterEngine 比如 FlutterActivity.createDefaultIntent(this) b, 第二種方式,就是創(chuàng)建新的FlutterEngine 比如 FlutterActivity.withNewEngine().build(this) c, 第三種方式,就是使用緩存FlutterEngine 比如 FlutterActivity.withCachedEngine(ENGINE_ID).build(this)

簡(jiǎn)單解析這三種方式 a和b其實(shí)是一樣的,F(xiàn)lutterActivity.createDefaultIntent其實(shí)調(diào)用的還是FlutterActivity.withNewEngine()方法 如下圖所示,

Flutter 和 Android 互相傳遞數(shù)據(jù)的實(shí)現(xiàn)

如果在開(kāi)發(fā)中不建議使用a,b方法,是因?yàn)樵陂_(kāi)發(fā)過(guò)程中,在原聲當(dāng)中打開(kāi)Flutter頁(yè)面,會(huì)有一段時(shí)間的黑屏,這是因?yàn)镕lutterEngine在初始化,初始化完成之后,就可以顯示Flutter頁(yè)面

3,創(chuàng)建FlutterEngine的實(shí)例 有兩種方法,直接傳Context,或者傳Context dartVmArgs

Flutter 和 Android 互相傳遞數(shù)據(jù)的實(shí)現(xiàn)

4,創(chuàng)建MethodChannel的實(shí)例,提供兩種構(gòu)造方法 messenger和name, message和name 和 MethodCodec

Flutter 和 Android 互相傳遞數(shù)據(jù)的實(shí)現(xiàn)

5,設(shè)置MethodChannel方法的回調(diào),接收Flutter傳過(guò)來(lái)的內(nèi)容,提供一個(gè)參數(shù) MethodCallHandler

Flutter 和 Android 互相傳遞數(shù)據(jù)的實(shí)現(xiàn)

6,F(xiàn)lutter傳過(guò)來(lái)的值各種各樣,是通過(guò)接口 MethodCallHandler

Flutter 和 Android 互相傳遞數(shù)據(jù)的實(shí)現(xiàn)

MethodCallHandler里面的抽象方法onMethodCall來(lái)區(qū)分,onMethodCall方法里面有兩個(gè)參數(shù) MethodCall包含傳過(guò)來(lái)參數(shù)的一些信息 比如方法名,參數(shù)等信息,

Flutter 和 Android 互相傳遞數(shù)據(jù)的實(shí)現(xiàn)

result表示成功或者失敗的一些回調(diào)信息

Flutter 和 Android 互相傳遞數(shù)據(jù)的實(shí)現(xiàn)

7,Android端向Flutter端發(fā)送消息,是通過(guò)注冊(cè)的MethodChannel 調(diào)用invokeMethod方法,有兩個(gè)參數(shù),方法的名字,和參數(shù)

Flutter 和 Android 互相傳遞數(shù)據(jù)的實(shí)現(xiàn)

c,建議使用這種提前初始化FlutterEngine的方法,使用過(guò)程中,頁(yè)面幾乎沒(méi)有停頓打開(kāi)Flutter頁(yè)面,所以要在Application中提前初始化 初始化代碼如下

Flutter 和 Android 互相傳遞數(shù)據(jù)的實(shí)現(xiàn)

(二)Flutter代碼設(shè)置

1,打開(kāi)VSCODE 創(chuàng)建一個(gè)應(yīng)用程序,包名my_flutter 2,創(chuàng)建MethodChannel的實(shí)例,指定一個(gè)此實(shí)例的唯一字符串,例如dev.android.book/add 3, 設(shè)置methodChannel方法回調(diào)函數(shù),接收Flutter通過(guò)MethodChannel發(fā)過(guò)來(lái)的消息 4,Android發(fā)過(guò)來(lái)的消息眾多,是通過(guò) MethodCall對(duì)象中的方法名來(lái)判斷 5,Android端向Flutter發(fā)送消息,也是通過(guò)methodChannel對(duì)象的的invokeMethod方法

針對(duì)以上的各個(gè)步驟添加說(shuō)明

1,創(chuàng)建一個(gè)flutter model,最后要作為依賴添加到原聲代碼當(dāng)中,通過(guò)命令 flutter create -t module --org com.flutter my_flutter,執(zhí)行完成之后如圖所示

Flutter 和 Android 互相傳遞數(shù)據(jù)的實(shí)現(xiàn)

2,在所在的類(lèi)中直接初始化 MethodChannel ,比如 final _channel = MethodChannel(channel_name); 參數(shù)是一個(gè)唯一的字符串,這個(gè)字符串必須和Android端中的字符串保持一致

Flutter 和 Android 互相傳遞數(shù)據(jù)的實(shí)現(xiàn)

3,給MethodChannel設(shè)置方法調(diào)用回調(diào) ,參數(shù)和Android端基本上一致

Flutter 和 Android 互相傳遞數(shù)據(jù)的實(shí)現(xiàn)

4,Android端發(fā)送過(guò)來(lái)的消息 也是通過(guò) MethodCall來(lái)判斷,可以更具方法名來(lái)判斷

Flutter 和 Android 互相傳遞數(shù)據(jù)的實(shí)現(xiàn)

5,F(xiàn)lutter端向Android端發(fā)送消息,也是通過(guò)注冊(cè)的MethodChannel調(diào)用invokeMethod,發(fā)送消息

Flutter 和 Android 互相傳遞數(shù)據(jù)的實(shí)現(xiàn)

(三)向Android工程中引入剛才創(chuàng)建的FLutter工程

在Android工程中的settings.gradle中添加如下代碼

Flutter 和 Android 互相傳遞數(shù)據(jù)的實(shí)現(xiàn)

然后在依賴當(dāng)中添加Flutter工程模塊

Flutter 和 Android 互相傳遞數(shù)據(jù)的實(shí)現(xiàn)

完成以上步驟,就完成了向已有的Android工程中添加flutter模塊,以及Android端和Flutter端數(shù)據(jù)是怎么傳遞的。

到此這篇關(guān)于Flutter 和 Android 互相傳遞數(shù)據(jù)的實(shí)現(xiàn)的文章就介紹到這了,更多相關(guān)Flutter Android 互相傳遞數(shù)據(jù)內(nèi)容請(qǐng)搜索好吧啦網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持好吧啦網(wǎng)!

標(biāo)簽: Android
相關(guān)文章:
主站蜘蛛池模板: 亚克力制品定制,上海嘉定有机玻璃加工制作生产厂家—官网 | app开发|app开发公司|小程序开发|物联网开发||北京网站制作|--前潮网络 | 济南轻型钢结构/济南铁艺护栏/济南铁艺大门-济南燕翔铁艺制品有限公司 | 无水硫酸铝,硫酸铝厂家-淄博双赢新材料科技有限公司 | 石膏基自流平砂浆厂家-高强石膏基保温隔声自流平-轻质抹灰石膏粉砂浆批发-永康市汇利建设有限公司 | 美甲贴片-指甲贴片-穿戴美甲-假指甲厂家--薇丝黛拉 | 沈阳激光机-沈阳喷码机-沈阳光纤激光打标机-沈阳co2激光打标机 | 塑胶跑道_学校塑胶跑道_塑胶球场_运动场材料厂家_中国塑胶跑道十大生产厂家_混合型塑胶跑道_透气型塑胶跑道-广东绿晨体育设施有限公司 | 纸张环压仪-纸张平滑度仪-杭州纸邦自动化技术有限公司 | 酒吧霸屏软件_酒吧霸屏系统,酒吧微上墙,夜场霸屏软件,酒吧点歌软件,酒吧互动游戏,酒吧大屏幕软件系统下载 | 面粉仓_储酒罐_不锈钢储酒罐厂家-泰安鑫佳机械制造有限公司 | 不锈钢管件(不锈钢弯头,不锈钢三通,不锈钢大小头),不锈钢法兰「厂家」-浙江志通管阀 | 蓝米云-专注于高性价比香港/美国VPS云服务器及海外公益型免费虚拟主机 | 青岛侦探_青岛侦探事务所_青岛劝退小三_青岛婚外情取证-青岛王军侦探事务所 | 华禹护栏|锌钢护栏_阳台护栏_护栏厂家-华禹专注阳台护栏、楼梯栏杆、百叶窗、空调架、基坑护栏、道路护栏等锌钢护栏产品的生产销售。 | 硫酸亚铁-聚合硫酸铁-除氟除磷剂-复合碳源-污水处理药剂厂家—长隆科技 | 东亚液氮罐-液氮生物容器-乐山市东亚机电工贸有限公司 | 滚筒烘干机_转筒烘干机_滚筒干燥机_转筒干燥机_回转烘干机_回转干燥机-设备生产厂家 | 小区健身器材_户外健身器材_室外健身器材_公园健身路径-沧州浩然体育器材有限公司 | 润东方环保空调,冷风机,厂房车间降温设备-20年深圳环保空调生产厂家 | 南京PVC快速门厂家南京快速卷帘门_南京pvc快速门_世界500强企业国内供应商_南京美高门业 | 深圳市万色印象美业有限公司 | 便携式XPDM露点仪-在线式防爆露点仪-增强型烟气分析仪-约克仪器 冰雕-冰雪世界-大型冰雕展制作公司-赛北冰雕官网 | 环压强度试验机-拉链拉力试验机-上海倾技仪器仪表科技有限公司 | 实验室装修_实验室设计_实验室规划设计- 上海广建净化工程公司 | 耐腐蚀泵,耐腐蚀真空泵,玻璃钢真空泵-淄博华舜耐腐蚀真空泵有限公司 | 沈阳缠绕包装机厂家直销-沈阳海鹞托盘缠绕包装机价格 | 紧急切断阀_气动切断阀_不锈钢阀门_截止阀_球阀_蝶阀_闸阀-上海上兆阀门制造有限公司 | 新中天检测有限公司青岛分公司-山东|菏泽|济南|潍坊|泰安防雷检测验收 | LED灯杆屏_LED广告机_户外LED广告机_智慧灯杆_智慧路灯-太龙智显科技(深圳)有限公司 | 石英陶瓷,石英坩埚,二氧化硅陶瓷-淄博百特高新材料有限公司 | 移动厕所租赁|移动卫生间|上海移动厕所租赁-家瑞租赁 | 太原装修公司_山西整装家装设计_太原室内装潢软装_肖邦家居 | 无线联网门锁|校园联网门锁|学校智能门锁|公租房智能门锁|保障房管理系统-KEENZY中科易安 | 精密机械零件加工_CNC加工_精密加工_数控车床加工_精密机械加工_机械零部件加工厂 | 山东石英砂过滤器,除氟过滤器「价格低」-淄博胜达水处理 | 双相钢_双相不锈钢_双相钢圆钢棒_双相不锈钢报价「海新双相钢」 双能x射线骨密度检测仪_dxa骨密度仪_双能x线骨密度仪_品牌厂家【品源医疗】 | 全自动五线打端沾锡机,全自动裁线剥皮双头沾锡机,全自动尼龙扎带机-东莞市海文能机械设备有限公司 | 食品质构分析仪-氧化诱导分析仪-瞬态法导热系数仪|热冰百科 | 客服外包专业服务商_客服外包中心_网萌科技 | 不锈钢复合板厂家_钛钢复合板批发_铜铝复合板供应-威海泓方金属复合材料股份有限公司 |