首页 > 解决方案 > 在按钮单击时从新的 Kotlin/Java Activity 调用 Flutter 方法

问题描述

我是 Flutter 和 Kotlin 的新手。

我在 Flutter 中创建了一个方法来调用 MainActivty.kt 中的方法。这个函数是从 MainActivity 开始另一个活动。SecondAcitivty 用于使用 CameraX API 拍照。我想从第二个活动中得到一些结果,回到颤动。

调用方法的 Dart 函数。

openCamera() async {
String value;
try {
  value = await platform.invokeMethod('openCamera');
} catch (e) {}

print(value);

}

我的 MainActivity.kt

class MainActivity: FlutterActivity() {

private val CHANNEL = "com.example.app/camera_start"
private val flutterEngine = null;

var methodCal = null;

override fun configureFlutterEngine(@NonNull flutterEngine: FlutterEngine) {
    GeneratedPluginRegistrant.registerWith(flutterEngine)
    MethodChannel(flutterEngine.dartExecutor,CHANNEL).setMethodCallHandler{
        methodCall, result ->
        if (methodCall.method == "openCamera"){

            val intent = Intent(this, CameraActivity::class.java)
            startActivityForResult(intent,2)
            result.success("Hello from Kotlin")
        }
    }



}

override fun onActivityResult(requestCode: Int, resultCode: Int, data: Intent) {
    super.onActivityResult(requestCode, resultCode, data)
    // check if the request code is same as what is passed  here it is 2
    if (requestCode == 2) {
        val message = data.getStringExtra("MESSAGE")
        Log.d("MESSAGE", message)
    }
}

}

如何从 CameraActivity 发送值以颤振或通过单击 CameraActivity 中的按钮调用颤振中的方法?

标签: javaflutterkotlinandroid-activity

解决方案


推荐阅读