android - Flutter Android 现有宿主应用扩展了 Fragment/AppCompatActivity , onClick 按钮需要向 Flutter Dart 发送消息
问题描述
我有一个现有的 Android 应用程序,并通过点击此链接将颤振模块作为库添加到其中。
我有一个现有的片段,它扩展了片段,并希望使用通道从这个片段向 Dart 发送消息。按照这个链接:
单击按钮时将此代码添加到我现有的 Fragment 中,我得到的错误是“无法解析方法 getFlutterView() ”
public class MainActivity extends AppCompatActivity {
private static final String CHANNEL = "flutter.native/helper";
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
new MethodChannel(getFlutterView(), CHANNEL).setMethodCallHandler(
new MethodChannel.MethodCallHandler() {
@Override
public void onMethodCall(MethodCall call, MethodChannel.Result result) {
if (call.method.equals("helloFromNativeCode")) {
String greetings = helloFromNativeCode();
result.success(greetings);
}
}
});
}
}
解决方案
终于可以通过添加虚拟 FlutterView 来修复它,
View flutterView = Flutter.createView(
MainActivity.this,
getLifecycle(),
"anyText"
);
new MethodChannel((BinaryMessenger) flutterView, CHANNEL).setMethodCallHandler(
new MethodChannel.MethodCallHandler() {
@Override
public void onMethodCall(MethodCall call, MethodChannel.Result result) {
if (call.method.equals("helloFromNativeCode")) {
String greetings = helloFromNativeCode();
result.success(greetings);
}
}
});
推荐阅读
- ionic-framework - ionic5 webview 应用程序浏览器事件与 android 设备后退按钮不同步
- arrays - 使用 React Hooks 更改数组状态的问题
- python - 使用密钥保存数据帧
- python - 使用装饰器使类在其实例上可迭代
- groovy - 无论如何我可以从常规关闭中获得价值
- azure-web-pubsub - Azure JSON 子协议“json.webpubsub.azure.v1”以编程方式加入组获取响应
- docker - Docker compose:角度容器无法向后端容器发送请求
- c# - 模块的封装
- c - 为什么 x[i]=if 比 if... x[i]= 快
- spring-boot - 将bean转换为展平json