美文网首页
flutter 调用Android原生代码

flutter 调用Android原生代码

作者: A然后呢 | 来源:发表于2020-08-17 13:31 被阅读0次

flutter端

androidToost(){      //一个按钮的点击事件
    getMsg().then((v){       //通过then关键词等待获取到异步结果后,执行后面的回调方法
      Scaffold.of(context).showSnackBar(SnackBar(
        content: Text(v),));                                         //弹一个通知,显示原生Android回调回来的数据
    });

  }



 Future<String> getMsg() async {
    // Native channel
    const platform = const MethodChannel("com.appgole/flutter");    //创建一个通道
    String result = "no";
    try {
      result = await platform.invokeMethod("getMsg");       //调用原生的方法
    } on PlatformException catch (e) {
      print(e.toString());
    }
    return result;
  }

android 端 新版本flutter 创建项目默认用的kotlin 真的烦

class MainActivity: FlutterActivity() {
    override fun configureFlutterEngine(@NonNull flutterEngine: FlutterEngine) {
        GeneratedPluginRegistrant.registerWith(flutterEngine);

        val channel = "com.appgole/flutter"     //注册通道名称,保持一致
        val methodChannel = MethodChannel(flutterEngine.dartExecutor, channel)  //初始化
        methodChannel.setMethodCallHandler { call, result ->       //监听flutter端调用
            if (call.method == "getMsg") {      //调用  getMsg 方法的时候
                result.success(getMsg())         //返回值
            } else {
                result.notImplemented()
            }
        }
    }

    private fun getMsg(): String {
        MyTest.getToast(this);         //java工具类,里面是原生Toast
        return "我是Android传过来的数据"
    }


}

相关文章

网友评论

      本文标题:flutter 调用Android原生代码

      本文链接:https://www.haomeiwen.com/subject/pfgdrktx.html