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

Ibm mobilefirst IBM Worklight:扩展服务器端Java代码,ibm-mobilefirst,Ibm Mobilefirst,我可以在Worklight中扩展服务器端Java代码吗? 例如,在com.worklight.integration.js下有一个名为JavaScriptIntegrationLibraryImplementation的类。在这个类中,有一个方法broadcastNotification,我想重写这个方法。有可能吗 编辑 原因是: 当我使用选项字段在客户端进行订阅时(例如添加customType:A),我希望检索已订阅此事件源的设备列表。基于deviceSubscrpition中的选项字段,我希

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

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

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

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


谢谢。

此部分工作灯不可扩展。您可以按照您所说的尝试并重写此方法,但请注意,此方法不受支持,在这种情况下我们无法提供帮助

编辑

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

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

重申:

适配器包含:ES_iOS5 ES_iOS6

客户:

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

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

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

      希望它能帮助你


      谢谢

      嗨,伊丹,我已经为这个场景编辑了我的问题。你对此有什么建议吗?谢谢Hi-Idan,例如,我想向具有特定iOS版本的用户组提交通知。我试图做的是在“选项”字段中插入版本号。然后,在服务器端Javascript中执行业务逻辑以选择要发送的设备。对于这种情况,由于iOS版本是动态的(以后可能会有iOS7),我无法预先定义事件源…因此,我想检查是否有任何方法来检索已订阅事件源的设备列表(通过连接到DB的API/适配器)。谢谢。谢谢你的建议。总之,您建议如何从Worklight推送通知数据库中获取设备信息列表?因为我想在外部网页上显示订阅的信息。