IBM Worklight:扩展服务器端Java代码

时间:2013-04-17 02:55:29

标签: ibm-mobilefirst

我可以在Worklight中扩展服务器端Java代码吗? 例如,JavaScriptIntegrationLibraryImplementation下有一个名为com.worklight.integration.js的类。在这个类中,有一个方法broadcastNotification,我想覆盖这个方法。是否可以这样做?

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

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

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

感谢。

2 个答案:

答案 0 :(得分:0)

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

修改

现在很清楚你想要实现的目标......你正在寻找的目前还没有。我将打开一个功能请求,它将在某个时候得到评估(如果您是IBM的客户,我建议您与您的联系人联系......)。

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

重申:

适配器包含:ES_iOS5 ES_iOS6

客户:

  • 获取iOS版本,将其存储在某个变量中。
  • 注册到事件源,其中事件源名称为ES _ $ {iOSVersion}
  • 如果发布新的iOS版本,只需创建一个新的事件源并重新部署 适配器;客户已经准备好处理这个问题。

答案 1 :(得分:0)

@ Red23jordon,

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

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

希望它可以帮到你。

感谢