Flutter Native調用Dart端方法,並獲取數據

參考資料:https://blog.csdn.net/julystroy/article/details/87367520async

 

舉個例子,咱們想從Native端請求Flutter端的一個getFlutterName方法獲取一個字符串。在Flutter端你須要給MethodChannel設置一個MethodCallHandler:ide

platform.setMethodCallHandler(platformCallHandler); Future<dynamic> platformCallHandler(MethodCall call) async { switch (call.method) { case "getFlutterName": return "Flutter name flutter"; break; } }

Dart端:核心關鍵就是直接return 須要返回的數據便可!url

 

Java端:就是用CallBack的形式來接收返回的數據:spa

mChannel.invokeMethod(RCMethodList.MethodCallBackGetUserInfo, userId, new Result() { @Override public void success(@Nullable Object arg) { if (arg instanceof Map) { Map map = (Map) arg; String userId = (String) map.get("userId"); String name = (String) map.get("name"); String portraitUri = (String) map.get("portraitUrl"); UserInfo userInfo = new UserInfo(userId, name, Uri.parse(portraitUri)); flutterCallBack.success(userInfo); } } @Override public void error(String s, @Nullable String s1, @Nullable Object o) { flutterCallBack.error("獲取用戶信息失敗:" + s, null); } @Override public void notImplemented() { flutterCallBack.error("flutter 端沒有實現getUserInfoByUserId接口", null); } });
相關文章
相關標籤/搜索