iPhone / iPod / iPad用ICQクライアントの新しいバージョンの主な革新は、プッシュ通知メカニズムのサポートです。開発者の観点から、それらについてもう少し話すことにしました。 おそらく、この情報は、iOSの代替クライアントの作成者に役立つでしょう。
プッシュ通知とは何であり、どのように使用するかについては、長い間説明しません。このテクノロジーの作者であるアップルは、私たちができる以上にこれをはるかに上手く行っています。 Apple Webサイトのドキュメント 。
これがICQでどのように機能するかを詳しく見てみましょう。
現在、承認リクエストとメッセージ送信の2種類のイベントを報告しています。 (このリストを将来拡張することはまずありません)。
プッシュ通知をサブスクライブするユーザーは、たとえICQを離れたとしても、オンラインであると見なされます。 クライアントが実行されていないことはそれほど重要ではありませんが、メッセージをすぐに読むことが重要です。 設定では、ユーザーが非アクティブの場合にこの状態が続く期間を指定できます。 デフォルト値は日です。
プッシュ通知を介して受信したメッセージは既読とは見なされませんが、サーバー上の未配信のオフラインメッセージとして残ります。つまり、最初に起動されたICQクライアントに配信されます。 これは、通知の手段として電話でアプリケーションを使用するが、コンピューターからの会話を好むユーザーにとって重要です。 同じUINで他のクライアントを実行すると、iPhoneクライアントがオフラインで表示されます。これは、2つのデバイスに2つの音声信号でメッセージがすぐに届かないようにするためです。
前の2つの段落のロジック全体が完全であることは完全にはわかりません。おそらく、統計とユーザーの反応に基づいていくつかの変更が加えられるでしょう。
問題の技術面に関しては、すべてが非常にシンプルであり、大きな労力をかけずに代替クライアントで実装できます。
セッションパラメータを作成または変更するときは、以下の表からパラメータを指定します
ブール値 | モバイル | モバイルセッションフラグ |
通知モード | notifyMode | 通知モード(デフォルト値は「無効」) |
ひも | iPhoneDevToken | トークンデバイス(16進形式) |
ひも | iPhoneBundleId | バンドルアプリケーションID |
ひも | iPhoneSound | サーバーが「サウンド」パラメーターの通知で送信する文字列。 オプショナル |
ひも | iPhoneLocKey | サーバーが「loc-key」パラメーターの通知で送信する文字列。 オプショナル |
ひも | iPhoneActionKey | サーバーが「action-loc-key」パラメーターの通知で送信する文字列。 オプショナル |
ブール値 | iPhoneBadge | サーバーが「バッジ」パラメーターの通知で送信する文字列。 オプショナル |
ひも | iPhoneLocArgs | 通知用のフィールド。 アプリケーションが通知で受け取りたいフィールドは、コンマ付きでリストされます。 サポートされているフィールドは、「srcName」、「srcId」、「destName」、「timestamp」、「message」です。 |
整数 | sessionTimeout | 切断するまでのセッションの長さ(秒単位)。 |
通知モードを除くすべてのフィールドは説明を必要としないようであり、通知モードは可能なオプションを持つ列挙型です。
無効 | 切断されました |
sendOnlyOne | 1つだけ送信 |
sendOnePerConversation | 各連絡先から複数送信しない |
applePushNotification | すべての通知を送信 |
モバイルフィールドに十分な注意を払っています。モバイルフィールドが満たされている場合、これにより、友人の連絡先リストに対応するアイコンを表示できます。
すべて、今ではクライアントを終了してプッシュ通知の受信を開始します。
4種類の通知を送信します。以下の例を参照してください。
1. 1つのメッセージ:{"aps":{"alert":{"loc-key": "IM2"、 "loc-args":["111111"、 "222222"、 "some_text_here"]}、 "badge" :1、「サウンド」:「IM」}}
111111-送信者UIN
222222-受信者UIN
some_text_here-メッセージテキスト
2.いくつかのメッセージ:{"aps":{"alert":{"loc-key": "New Messages"、 "loc-args":["5"]}、 "badge":5、 "sound": "EventSound_ReceiveIm.wav"}}
3. 1つの認証リクエスト:{"aps":{"alert":{"loc-key": "AR1"、 "loc-args":["111111"、 "222222"、 "parparon5"、 "John"、 「ジョンソン」]}、「バッジ」:1、「サウンド」:「eventSound_ReceiveIm.wav」}}
111111-受信者UIN
222222-送信者UIN
parparon5-送信者のニックネーム
ジョン-送信者名
ジョンソン-送信者の姓
4.いくつかの認証リクエスト:{"aps":{"alert":{"loc-key": "AR2"、 "loc-args":["2"]}、 "badge":2、 "sound": "EventSound_ReceiveIm.wav"}}
追加の説明は必要ないようです。 しかし、もし彼らが要求すれば、私たちはいつでも彼らに与える準備ができています。
PS:いいえ、XMPPに切り替える予定はありません。このテーマに関する私の考えはすべて、ICQに関する以前の投稿へのコメントに記載されています。
PPS:はい、多くはiPhoneの公式クライアントを使用しています。ロシアのAppStoreでも、元のICQは他のどのICQよりも高いです。 また、任意のxmmpをサポートするクライアントよりも。
PPPS: AppStoreのICQモバイル