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传过来的数据"
}
}
网友评论