我在flutter应用程序中使用本机android方法并使用说明使用的文档
MethodChannel(flutterView, CHANNEL).setMethodCallHandler...
但是升级颤振后,该MethodChannel功能不再需要,flutterView并且flutterView不再存在。
MethodChannel
flutterView
can not resolve method getFlutterView()
我认为应该有一个用于创建频道的新教程
相反,它需要一些BinaryMessenger我不知道该给些什么。
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()。
getFlutterView()
getFlutterEngine().getDartExecutor().getBinaryMessenger()
实际上,您实际上不需要.getBinaryMessenger()as DartExecutor实现BinaryMessenger本身(仅通过转发即可),但是我认为指定Messenger更为正确。
.getBinaryMessenger()
DartExecutor