2013-04-17 27 views
0

我可以在Worklight中擴展服務器端Java代碼嗎? 例如,在com.worklight.integration.js下有一個叫JavaScriptIntegrationLibraryImplementation的類。在這個類中,有一個方法broadcastNotification,我想覆蓋這個方法。是否有可能這樣做?IBM Worklight:擴展服務器端Java代碼

編輯
的原因是: 當我做與選項字段客戶端的訂閱(如增加customType:A),我想找回已經訂閱了此事件的設備列表資源。基於deviceSubscrpition中的選項字段,我希望有一些業務邏輯來確定發送通知消息的人員。例如,我只會將消息提交給'customType = A'的用戶。

但是,Worklight中沒有API可以檢索使我能夠首先檢索列表的設備列表。然後執行JavaScript中的邏輯並調用WL.Server.notifyDevice ..

因此,我想檢查是否有任何方法檢索已訂閱的設備列表(通過連接到數據庫的API /適配器)一個事件源。

謝謝。

回答

0

這部分Worklight不可擴展。你可以嘗試重寫這個方法,但請注意這不被支持,在這種情況下我們不能提供幫助。

編輯現在

,這是明確你想要什麼來實現?你在找什麼目前無法使用。我會爲它打開一個功能請求,並在某個時候進行評估(如果您是IBM的客戶,我建議與您的聯繫人聯繫...)。

我的建議(形式上有點不好):你也許可以使用多個事件源,其中每個事件源代表一個iOS版本。在客戶端,在應用程序初始化時,您可以檢索iOS版本並使用它註冊到正確的事件源(這將是非常通用的代碼以允許重新使用)。如果發佈新的iOS版本(您可能會提前知道這一點),只需將此事件源添加到適配器代碼並重新部署適配器。新的iOS版本的用戶仍然可以註冊通知,因爲你在初始化iOS版本,並使用該信息註冊到正確的事件源...

重申:

適配器包含: ES_iOS5 ES_iOS6

客戶端:

  • 某些變量取的iOS版本,並將其存儲。
  • 註冊到事件源,其中事件源名稱是ES _ $ {} iOSVersion
  • 如果一個新的iOS版本發佈時,只需創建一個新的事件源,並重新部署 適配器;客戶已經具備了處理這個問題的能力。
+0

嗨伊丹,我編輯了我的問題的情況。你有什麼建議嗎?謝謝! – red23jordan

+0

看到我編輯的答案。 –

+0

嗨伊丹,例如,我想提交通知給某個iOS版本的用戶組。我試圖做的是在「選項」字段中插入版本號。之後,使用服務器端Javascript中的業務邏輯來選擇要發送的設備。對於這種情況,由於iOS版本是動態的(以後可能有iOS7),我無法預先定義事件源...因此,我想檢查是否有任何方法來檢索設備列表(通過API /連接到DB的適配器)已訂閱事件源。謝謝。 – red23jordan

0

@ Red23jordon,

我也有類似的情況,我在那裏建立在訂購的時候,我是節約 用戶ID和事件類型定製表定製表。當用戶取消訂閱時,我也從定製表中刪除細節。

爲了發送推送給訂閱特定「偶數類型」的用戶,我查看定製表以獲取訂閱特定事件類型的用戶ID列表,然後我進入通知用戶/設備表並獲取相應設備併發送推。

希望它可以幫助你。

謝謝

相關問題