Flutter1.12与原生Android交互(kotlin)
16lz
2021-01-23
开发原生部分,还是点击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); } }
更多相关文章
- Android:android studio提示adb: ADB server didn't ACK
- Android预制APP第一次打开时不弹权限提示页面
- 在4.0以上系统中应用出现2.3版本的系统UI
- Android之一种很有趣的界面跳动提示动画
- Android中NDK各版本下载
- Android wifi提示已连接但是无法访问网络
- Android获取apk的版本及包名等信息
- 去掉非首次开机的优化过程都会有'Android正在升级'的提示
- android SDK编译版本修改