ICQ Mobile for iOSバージョン2.6およびプッシュ通知

画像

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切断するまでのセッションの長さ(秒単位)。

通知モードを除くすべてのフィールドは説明を必要としないようであり、通知モードは可能なオプションを持つ列挙型です。
無効切断されました
sendOnlyOne1つだけ送信
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モバイル

Source: https://habr.com/ru/post/J123564/


All Articles