电容器插件的输入值未在Swift文件上读取

ffscu2ro  于 2023-09-29  发布在  Swift
关注(0)|答案(1)|浏览(70)

我正在创建一个电容器插件,旨在返回用户在iOS钱包中的通行证的基本数据。默认情况下,它将返回每张卡的序列号和组织者名称,但如果您将其他密钥作为输入提供给函数,它也可以从通行证中获取其他密钥。例如,如果我有一个虚拟的通行证,在主字段中有一个键/值对,看起来像这样...

[
  {key: "lastNameKey", value: input.lastName, label: "Last Name"},
  {key: "firstNameKey", value: input.firstName, label: "First Name"}
]

理论上,我应该能够通过将['lastNameKey', 'firstNameKey']作为参数传递到函数中来检索这两个值。
我的。ts文件current中的函数调用看起来像这样。。

let fieldKeys = ['primaryKey', 'sectionKey', 'expKey', 'firstNameKey', 'lastNameKey']
const wallet = WalletAccess.getWallet({fields: fieldKeys})

其中getWallet知道它正在寻找字符串数组的输入。任何其他输入(单个字符串或任何其他值的数组)都会提供错误,因此函数肯定需要一个Array<string>类型的参数fields
然而,在Swift方面,当我试图打印这些输入时,没有任何内容被读取。下面的行将导致一个空数组被打印到控制台。

@objc func getWallet(_ call: CAPPluginCall) {
        let fieldKeys = call.getArray("fields", String.self) ?? []
        print("Cap Input Params...")
        print(fieldKeys)
        ...

为了进一步说明,my .m文件和definitions.ts文件都考虑了这个输入,所以它看起来不是一个简单的语法问题,特别是再次考虑到函数理解它需要一个Array和字符串作为输入,并且在提供其他输入时出错。
我是否误用了call.getArray()?我尽我所能地遵循电容器文档,但解决方案却让我困惑

hiz5n14c

hiz5n14c1#

事实证明,这个问题是如此恼人的修复,因为语法是好的,我只是在建设过程中出了问题。我不得不更新电容器插件本身,我已经做了;但下一步是在我测试插件的项目中运行ionic build。尽管插件中的print语句在没有运行build命令的情况下发生了变化,但事实证明,并不是所有的变化都内置到了我的新项目中。这解释了为什么插件知道需要一个String数组,并拒绝了没有输入的插件调用,但它仍然不知道如何处理输入。TLDR:始终记住在测试之前运行所有构建过程

相关问题