java - 如何从 Swift 原生代码到 Flutter 的 'put' 参数

标签 java ios swift flutter dart

我正在尝试将参数从 Swift 中的回调方法传递给 Flutter。这是我想要在我的原生 Java 代码中实现的示例:

   @Override
        public void onRewardRequest(final TJPlacement tjPlacement, final TJActionRequest tjActionRequest, final String itemId, final int quantity) {
            this.registrar.activity().runOnUiThread(new Runnable() {
                @Override
                public void run() {
                    Map<String, Object> arguments = new HashMap<>();
                    arguments.put("requestId", tjActionRequest.getRequestId());
                    arguments.put("token", tjActionRequest.getToken());
                    arguments.put("itemId", itemId);
                    arguments.put("quantity", quantity);
                    channel.invokeMethod("onRewardRequest", arguments);
                }
            });
        }

编辑:我面临一个问题,论点 args未定义,我不确定什么是 Swift 等效的 arguments.put()从上面的Java代码。这是我目前的实现:
//Calling my method 'onRewardRequest()' from Dart->Swift
 methodChannel.invokeMethod("onRewardRequest", arguments: args, result: {(r:Any?) -> () in

func placement(_ placement: TJPlacement?, didRequestReward request: TJActionRequest?,itemId: String?,quantity: Int) {
       //How do I call `arguments.put` over here like shown above in the Java code?                           
     }
        })

最佳答案

看起来你想从 Swift 调用一个 Dart 方法,传递一个字典的参数(在 Dart 端会变成一个 Map)。创建一个相关类型的字典,例如:String->Any,填充它并将其用作 arguments范围。

  var args = [String: Any]()
  args["itemId"] = itemId
  args["quantity"] = quantity
  // todo - add other arg members
  methodChannel.invokeMethod("onRewardRequest", arguments: args)

关于java - 如何从 Swift 原生代码到 Flutter 的 'put' 参数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/61507418/

相关文章:

java - 为 optJSONArray 获取 null

JavaCC 词法分析器未按预期工作(未忽略空格)

ios - 无法检查函数的引用相等性;这里的操作数类型为 'UIBarButtonItem' 和 '(UIBarButtonItem) -> ()'

ios - Storyboard如何推送嵌套导航 Controller ?

ios - 如何将多个参数传递给 Swift #selector?

java - 使用indexOf,但使用列表中包含的类的成员

java - Google 云端点自定义对象

ios - Apple 的企业分发 iOS 应用程序如何

swift - 在 `kind` 和 "Show": why does the change not take effect when running the simulator? 之间更改 Storyboard segue "ShowDetail"

ios - view.traitCollection.horizo​​ntalSizeClass 在 vi​​ewDidLoad 中返回 undefined (0)