0

Worklight でサーバー・サイドの Java コードを拡張できますか? たとえば、JavaScriptIntegrationLibraryImplementationunderというクラスがありcom.worklight.integration.jsます。このクラス内にはメソッドがあり、broadcastNotificationこのメソッドをオーバーライドしたいと考えています。そうすることは可能ですか?

EDIT
その理由は次のとおりです。 オプション フィールドを使用してクライアント側でサブスクリプションを作成すると (例: 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 に答える