0

我可以在 Worklight 中扩展服务器端 Java 代码吗?例如,有一个名为JavaScriptIntegrationLibraryImplementationunder的类com.worklight.integration.js。在这个类里面,有一个方法broadcastNotification,我想重写这个方法。有可能这样做吗?

编辑
原因是:当我在客户端使用选项字段进行订阅时(例如添加customType:A),我想检索已订阅此事件源的设备列表。基于 deviceSubscrpition 中的选项字段,我想有一些业务逻辑来确定向谁发送通知消息。例如,我只会将消息提交给“customType=A”的用户。

但是,Worklight 中没有 API 可以检索设备列表,这使我首先检索该列表。然后在 JavaScript 中执行逻辑并调用 WL.Server.notifyDevice..

因此,我想检查是否有任何方法可以检索已订阅事件源的设备列表(通过连接到 DB 的 API / 适配器) .

谢谢。

4

2 回答 2

0

Worklight 的这一部分不可扩展。您可以按照您的说法尝试覆盖此方法,但请注意不支持此方法,在这种情况下我们无法提供帮助。

编辑

现在很清楚您要实现的目标......您正在寻找的内容目前不可用。我将为它打开一个功能请求,并在某个时候对其进行评估(如果您是 IBM 的客户,我建议与您的联系人联系......)。

我的建议(形式上有些骇人听闻):您也许可以使用多个事件源,其中每个事件源代表一个 iOS 版本。在客户端,在应用程序初始化时,您可以检索 iOS 版本并使用它来注册到正确的事件源(这将是允许重用的非常通用的代码)。如果发布了新的 iOS 版本(您可能会提前知道这一点),您只需将此事件源添加到适配器代码并重新部署适配器。新 iOS 版本的用户仍然可以注册通知,因为您在初始化时获得了 iOS 版本,并使用此信息注册到正确的事件源...

重申:

适配器包含: ES_iOS5 ES_iOS6

客户端:

  • 获取 iOS 版本,将其存储在某个变量中。
  • 注册到事件源,其中事件源名称为 ES_${iOSVersion}
  • 如果发布了新的 iOS 版本,只需创建一个新的事件源并重新部署适配器;客户已经有能力处理这个问题。
于 2013-04-17T07:03:42.813 回答
0

@Red23jordon,

我有类似的情况,我创建了一个自定义表,在订阅时,我将用户 ID 和事件类型保存在自定义表中。当用户取消订阅时,我也会从自定义表中删除详细信息。

为了向订阅特定“偶数类型”的用户发送推送,我查看自定义表以获取订阅特定事件类型的用户 ID 列表,然后我进入通知用户/设备表并获取相应的设备并发送推送。

希望它可以帮助你。

谢谢

于 2013-05-30T08:30:17.507 回答