av一区二区在线观看_亚洲男人的天堂网站_日韩亚洲视频_在线成人免费_欧美日韩精品免费观看视频_久草视

您的位置:首頁技術文章
文章詳情頁

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

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

(一)Android代碼設置

1,打開Android Studio 創(chuàng)建一個應用程序,包名dev.android.book 2, 創(chuàng)建一個MyApplication ,應用在AndroidManifest.xml文件中的application的android:name屬性上 3,創(chuàng)建FlutterEngine的實例,然后把這個實例添加到緩存的FlutterEngine當中 4,創(chuàng)建MethodChannel的實例,指定一個此實例的唯一字符串,例如dev.android.book/add 5, 設置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 目的是 預初始化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ā)過程中,在原聲當中打開Flutter頁面,會有一段時間的黑屏,這是因為FlutterEngine在初始化,初始化完成之后,就可以顯示Flutter頁面

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

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

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

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

5,設置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代碼設置

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

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

1,創(chuàng)建一個flutter model,最后要作為依賴添加到原聲代碼當中,通過命令 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設置方法調(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)

然后在依賴當中添加Flutter工程模塊

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

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

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

標簽: Android
相關文章:
主站蜘蛛池模板: 久久久久久九九九九 | 久久婷婷网| 欧美精品成人一区二区在线观看 | 欧美成人精品欧美一级乱黄 | a级片免费在线观看 | 五月婷视频 | 中文字幕不卡视频 | 超碰在线中文字幕 | 三级黄色片网站 | 亚洲国产二区 | 久久久久久久免费视频 | 欧美一区二区三区在线观看 | 热久久免费视频 | 91亚洲国产成人久久精品麻豆 | 欧洲一区二区 | 日韩精品视频免费在线观看 | 性久久久久久久 | 午夜免费福利视频 | 欧美黄色一级 | 亚洲福利专区 | 午夜av在线播放 | 欧美一区二区免费 | 黄色一级毛片 | 2017天天干| 欧美精品一区二区三区四区 | 青青青在线视频 | 亚洲播放| av片在线免费观看 | 日韩一区在线视频 | 日韩在线一区二区 | 欧美伊人网 | 欧美综合久久 | 日韩三级精品 | 国产小视频在线播放 | 怡红院久久 | 久久av一区二区 | 亚洲欧美日韩一区二区三区四区 | 国产一区二区精品丝袜 | 久久精品久久久久久久 | 欧美在线视频观看 | 国产亚洲久一区二区 |