一尘不染

升级flutter后创建方法通道-无法解析方法getFlutterView()

flutter

我在flutter应用程序中使用本机android方法并使用说明使用的文档

MethodChannel(flutterView, CHANNEL).setMethodCallHandler...

但是升级颤振后,该MethodChannel功能不再需要,flutterView并且flutterView不再存在。

can not resolve method getFlutterView()

我认为应该有一个用于创建频道的新教程

相反,它需要一些BinaryMessenger我不知道该给些什么。

这是旧的代码,不再起作用:

import io.flutter.app.FlutterActivity;
import io.flutter.plugin.common.MethodCall;
import io.flutter.plugin.common.MethodChannel;
import io.flutter.plugin.common.MethodChannel.MethodCallHandler;
import io.flutter.plugin.common.MethodChannel.Result;

public class MainActivity extends FlutterActivity {
private static final String CHANNEL = "samples.flutter.dev/battery";

@Override
public void onCreate(Bundle savedInstanceState) {

    super.onCreate(savedInstanceState);
    GeneratedPluginRegistrant.registerWith(this);

    new MethodChannel(getFlutterView(), CHANNEL).setMethodCallHandler(
            new MethodCallHandler() {
                @Override
                public void onMethodCall(MethodCall call, Result result) {
                    // Note: this method is invoked on the main thread.
                    // TODO
                }
            });
}

阅读 1799

收藏
2020-08-13

共1个答案

一尘不染

替换getFlutterView()getFlutterEngine().getDartExecutor().getBinaryMessenger()

实际上,您实际上不需要.getBinaryMessenger()as
DartExecutor实现BinaryMessenger本身(仅通过转发即可),但是我认为指定Messenger更为正确。

2020-08-13