亚洲激情专区-91九色丨porny丨老师-久久久久久久女国产乱让韩-国产精品午夜小视频观看

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

Flutter 與Android 如何實現互相傳遞數據

發布時間:2020-11-05 14:28:32 來源:億速云 閱讀:205 作者:Leah 欄目:開發技術

Flutter 與Android 如何實現互相傳遞數據?針對這個問題,這篇文章詳細介紹了相對應的分析和解答,希望可以幫助更多想解決這個問題的小伙伴找到更簡單易行的方法。

(一)Android代碼設置

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

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

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

2,創建BookApplication 目的是 預初始化FlutterEngine,啟動Flutter有三種方式

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

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

Flutter 與Android 如何實現互相傳遞數據

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

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

Flutter 與Android 如何實現互相傳遞數據

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

Flutter 與Android 如何實現互相傳遞數據

5,設置MethodChannel方法的回調,接收Flutter傳過來的內容,提供一個參數 MethodCallHandler

Flutter 與Android 如何實現互相傳遞數據

6,Flutter傳過來的值各種各樣,是通過接口 MethodCallHandler

Flutter 與Android 如何實現互相傳遞數據

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

Flutter 與Android 如何實現互相傳遞數據

result表示成功或者失敗的一些回調信息

Flutter 與Android 如何實現互相傳遞數據

7,Android端向Flutter端發送消息,是通過注冊的MethodChannel 調用invokeMethod方法,有兩個參數,方法的名字,和參數

Flutter 與Android 如何實現互相傳遞數據

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

Flutter 與Android 如何實現互相傳遞數據

(二)Flutter代碼設置

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

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

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

Flutter 與Android 如何實現互相傳遞數據

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

Flutter 與Android 如何實現互相傳遞數據

3,給MethodChannel設置方法調用回調 ,參數和Android端基本上一致

Flutter 與Android 如何實現互相傳遞數據

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

Flutter 與Android 如何實現互相傳遞數據

5,Flutter端向Android端發送消息,也是通過注冊的MethodChannel調用invokeMethod,發送消息

Flutter 與Android 如何實現互相傳遞數據

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

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

Flutter 與Android 如何實現互相傳遞數據

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

Flutter 與Android 如何實現互相傳遞數據

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

關于Flutter 與Android 如何實現互相傳遞數據問題的解答就分享到這里了,希望以上內容可以對大家有一定的幫助,如果你還有很多疑惑沒有解開,可以關注億速云行業資訊頻道了解更多相關知識。

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

韶关市| 安阳县| 游戏| 精河县| 杭锦后旗| 许昌县| 吴旗县| 马边| 和田市| 九龙城区| 浑源县| 中超| 綦江县| 汶上县| 鱼台县| 武威市| 阜宁县| 大埔区| 青浦区| 广西| 安远县| 鲁甸县| 鞍山市| 大关县| 阜城县| 清流县| 鹤壁市| 水城县| 绥德县| 托克逊县| 万载县| 信宜市| 周至县| 武功县| 仁布县| 定安县| 庆阳市| 陆丰市| 洛阳市| 饶河县| 吉木萨尔县|