Skip to content

[Feature] 关于 extBirdge 实现的讨论 #192

@lbb00

Description

@lbb00

你的需求是否与某个问题相关? (Is your feature request related to a problem?)

extBirdge 的设计强制了小程序侧只能调用 wx.extBirdge('methodName') 与 Native 通信,这对外部开发者来说并不友好。

场景如下:

  1. 实现 Dimina 中未实现的 API 时,更希望是直接挂载在 wx.[method] 上面。比如要实现 wx.login 等等方法。
  2. 当于 Dimina BaseAPI 实现不一致是,无法重载掉 Dimina 已实现的 API

描述你想要的解决方案 (Describe the solution you'd like)

根据目前 iOS,Android 和 Harmony 已经实现的 API 来看,直接使用已有的方法就可以重载掉内部实现。

iOS: DMPContainerApi.registerMethod(name:handler:) 是 public,可以直接使用
Android: MiniApp.getInstance().registerApi(AudioApi()) 也可以直接使用
Harmony: registerCustomModule() 方法本身是 public 的,将 DMPContainerBridgesModule, DMPAppModuleManager 导出就行 (待实现)
H5: #189 新增一个 registryAPI

也可以将这些 register Method 的 API 名统一,提高一致性。

描述你考虑过的替代方案 (Describe alternatives you've considered)

No response

平台 (Platform)

  • Android
  • iOS
  • Harmony
  • Web

补充信息 (Additional context)

No response

Metadata

Metadata

Assignees

No one assigned

    Labels

    enhancementNew feature or request

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions