javascript - JS 和 iOS 之间的类型安全

标签 javascript ios protocol-buffers hybrid-mobile-app

现在我们有 javascript 应用程序被拉入 WKWebView。该应用程序通过事件发出消息。我们编写了一个中间层来监听这些事件,进行一些解析并将结果传递给 iOS 来完成一些 native 工作。

这很有效;然而,我们有点担心(并且已经看到)类型安全问题的出现。如果 JS API 发生变化,那么 iOS 需要进行调整,并且没有真正的契约(Contract)来确认一切都将继续正常工作。

我们提出了 2 个想法:

  • 更多单元测试来执行契约(Contract)
  • 使用某种 Protocol Buffer 类型策略来确保架构

还有更好的办法吗?有没有一个很好的 Protocol Buffer 示例可以执行类似的操作?

最佳答案

您可以尝试的一件事是将所有原语作为字符串发送,然后根据键名称解析它们。例如numUnits 将始终是一个 int,或者可能制定一些命名约定,以明确该值的类型。

您甚至可以使每个值由 2 个键值对组成,一对用于值,一对用于类型。这会使 JSON 膨胀,但会使其类型安全。

例如{"numUnits":{"value":"5", "type":"int"}}

关于javascript - JS 和 iOS 之间的类型安全,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28841643/

相关文章:

javascript - Bootstrap Forms Accordion 不工作

c - void *array = *(void **) member + siz * (*p_n); 的目的是什么?

android - 我在 Android 的 Proguard 配置中缺少什么?

go - 如何使用 protobuf 二进制文件在 PUB/SUB ( ZeroMQ ) 中进行过滤?

ios - Swift 中的协议(protocol)设计

javascript - CSS:如何像语义 ui 方式创建 colsgroup

javascript - 检查 cookie 是否存在不工作

php - Kevin Luck 的 jQuery 日期选择器插件 - 动态设置结束日期

ios - 如果我有嵌入的不受限制的 WebView ,这是否意味着我有第三方内容?

ios - 后台获取在 iOS 中执行的频率是多少?