LegacyJavaScriptObject 将对象从 Dart 传递到 JavaScript 时

问题描述 投票:0回答:0

我正在尝试为 FreshChat sdk 编写一个 flutter web 插件。我根本没走多远,因为我正在努力正确传递参数。我有这个代码:

@JS()
library freshchat_sdk;

import 'package:js/js.dart';

@JS('window.fcWidget.open')
external void open();

@JS('window.fcWidget.user.setProperties')
external Future<void> setProperties(dynamic properties);

当我从飞镖端调用

setProperties
并将
Map<String, dynamic>
作为参数(或实际上任何其他对象,如字符串等)传递时,我收到以下错误:

Error: PlatformException(error, Invalid argument: Instance of 'LegacyJavaScriptObject', null, null)

这是 FreshChat Javascript 文档中关于如何调用 setProperties 的示例:

<script>
window.fcWidget.user.setProperties({
  firstName: <fname>,
  lastName: <lname>,
  email: <email>,
  phone: <phone>,
  phoneCountry: <country_code>,
  "plan": "Estate",
  "status": "Active",
  "Last Payment": "12th August"
});
</script>

我的问题是如何正确编写和调用这个互操作?

javascript flutter dart interop
© www.soinside.com 2019 - 2024. All rights reserved.