Flutter1.12与原生Android交互(kotlin)
16lz
2021-12-04
开发原生部分,还是点击Open for Editing in Android Studio好用,提示、自动引用功能都能正常使用。
-----------android/app/src/main/kotlin/com/glodon/gzzjy_app/MainActivity.kt
import android.os.Bundleimport android.os.PersistableBundleimport android.util.Logimport androidx.annotation.NonNull;import io.flutter.embedding.android.FlutterActivityimport io.flutter.embedding.engine.FlutterEngineimport io.flutter.plugin.common.MethodChannelimport io.flutter.plugin.common.PluginRegistryimport io.flutter.plugins.GeneratedPluginRegistrantclass MainActivity: FlutterActivity() { override fun configureFlutterEngine(@NonNull flutterEngine: FlutterEngine) { GeneratedPluginRegistrant.registerWith(flutterEngine) MethodChannel(flutterEngine.dartExecutor.binaryMessenger,"app.channel.shared.data").setMethodCallHandler( MethodChannel.MethodCallHandler { call, result -> run { if (call.method.contentEquals("getParam")) { result.success("message") Log.i("test","ms") } } } ) }}
注:这个flutterEngine.dartExecutor.binaryMessenger找了好久,各种文档上都是写的继承于io.flutter.app.FlutterActivity的MainActivity,直接getFlutterView()就行了,但是1.12这个版本的不行了。
------------------lib/main.dart
class _MyHomePageState extends State { static const platform = const MethodChannel('app.channel.shared.data'); String dataShared = "No data"; @override void initState() { super.initState(); getSharedText(); } getSharedText() async { var sharedData = await platform.invokeMethod("getParam"); if (sharedData != null) { setState(() { dataShared = sharedData; }); print(dataShared); } }
更多相关文章
- widget入门
- android xml 常用控件介绍
- Android:android studio提示adb: ADB server didn't ACK
- android 格式化
- Android预制APP第一次打开时不弹权限提示页面
- LayoutInflater.inflate()方法的介绍
- Android之Google Map(一)
- Android之一种很有趣的界面跳动提示动画
- Android(安卓)通过继承TextView类自定义字体默认颜色