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

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了升级flutter后创建方法通道-无法解析方法getFlutterView()相关的知识,希望对你有一定的参考价值。

我在我的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
                
            );

答案

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

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

以上是关于升级flutter后创建方法通道-无法解析方法getFlutterView()的主要内容,如果未能解决你的问题,请参考以下文章