java-如何将函数作为参数从DartFlutter传递到Android本机代码?

java-如何将函数作为参数从DartFlutter传递到Android本机代码?,第1张

概述我想创建一个可以从Flutter调用的基于Java的SDK,Flutter端需要通过提供在处理的不同阶段执行的回调来插入SDK,理想情况是:Future<Result>=doPayment(amount:100.00,currency:'USD',onPasscodeEntry:()=>_renderInputBox(),onValidation:()=>_doValidatio

我想创建一个可以从Flutter调用的基于Java的SDK,Flutter端需要通过提供在处理的不同阶段执行的回调来插入SDK,理想情况是:

Future<Result> = doPayment(  amount: 100.00,   currency: 'USD',   onPasscodeEntry: () => _renderinputBox(),   onValIDation: () => _dovalIDation());

处理本身会花费一些时间等,因此Future< PaymentResult>会在处理过程中使用.模式是有意义的,应用程序应该对处理的某些点做出反应,因此传入回调是有意义的.

问题:

>如何将函数传递给Java代码? As far as I can tell all the Java-passable method arguments in Flutter are serializable-ish objects
>(不太重要/可选)如何返回POJO并在Dart中处理它?从the specs开始,我应该将结果编码(在Java中)为ArrayList / HashMap或JsON字符串,然后在Dart中创建等效的构造函数以接受List / Map?这似乎有点笨拙,所以我问是否有更简单的方法,最好不要维护Java&同一对象的Dart变体

解决方法:

您不能传递函数.

您可以创建从函数名称到函数引用的映射,然后传递函数名称并在映射中按名称查找函数并调用它.

您也不能传递POJO.

您需要将其序列化为JsON(或其他受支持的格式),并在通道的另一侧反序列化.为此,您需要在Dart和Java中实现POJO类.

像protobuf或flatbuffer之类的程序包允许根据一种简化的语言为不同的语言生成代码,以指定数据结构.

总结

以上是内存溢出为你收集整理的java-如何将函数作为参数从Dart / Flutter传递到Android本机代码?全部内容,希望文章能够帮你解决java-如何将函数作为参数从Dart / Flutter传递到Android本机代码?所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/web/1094173.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-05-28
下一篇 2022-05-28

发表评论

登录后才能评论

评论列表(0条)

保存