午夜剧场伦理_日本一道高清_国产又黄又硬_91黄色网战_女同久久另类69精品国产_妹妹的朋友在线

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

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

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

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

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

針對以上的各個步驟添加說明

1,很簡單就是打開Android studio =>File=>New Project=>Select a Project Template=>input Name, Package name等=>Finish

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

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

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

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

如果在開發(fā)中不建議使用a,b方法,是因為在開發(fā)過程中,在原聲當(dāng)中打開Flutter頁面,會有一段時間的黑屏,這是因為FlutterEngine在初始化,初始化完成之后,就可以顯示Flutter頁面

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

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

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

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

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

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

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

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

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

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

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

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

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

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

c,建議使用這種提前初始化FlutterEngine的方法,使用過程中,頁面幾乎沒有停頓打開Flutter頁面,所以要在Application中提前初始化 初始化代碼如下

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

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

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

針對以上的各個步驟添加說明

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

標簽: Android
相關(guān)文章:
主站蜘蛛池模板: 欧美日韩在线观看视频 | 久久综合色网 | 国产精品久久久久免费 | 久久夜靖品2区 | 亚洲男人天堂视频 | 亚洲国产日韩欧美 | 欧美一级视频免费观看 | www.国产.com| 久久国色 | 欧美一级片在线观看 | 美女av网站| 黄色拍拍视频 | 一区二区三区视频免费 | 午夜影院h | 久久r精品 | 亚洲美女在线观看 | 香蕉视频在线视频 | 欧美日韩亚洲视频 | 成人四虎 | 国产精品美女久久久久av爽 | 亚洲图片综合网 | 国产一二在线 | 福利一区二区视频 | 日韩三级视频 | xxx综合网| 天天躁日日躁狠狠躁喷水 | 欧美三级黄色大片 | 一区二区视频免费 | 中文字幕视频一区二区 | 老女人av | 日韩一区二区在线观看视频 | 精品视频亚洲 | 欧美成人精品欧美一级私黄 | 国产免费av网站 | 日韩不卡一区二区三区 | 91久久久久久久久久 | 成年人在线播放视频 | 国产精品久久久久久久久久久久久久久久 | 亚洲免费播放 | 中文av在线播放 | 国产黄色免费观看 |