6.5. クライアントからのPush送信方法(iOS編)

ここでは、iOS アプリケーションからの Push メッセージ送信方法について説明します。

6.5.1. Push メッセージ(APNs/GCM 共通部分)の構築

Push メッセージは APNs/GCM 共に NBPush クラスのインスタンスとして生成します。 生成したインスタンスに対して、Push メッセージを構築していきます。 下記は、APNs/GCM 共通部分の構築例です。

この例では、

  • "TerminalInfo" チャネルを購読
  • アプリバージョン(_appVersionString)が"1.0.5"以外
  • 営業グループ(g:eigyo) もしくは企画グループ(g:kikaku)に所属

の端末に向けて Push メッセージを送信するよう設定しています。

NBPush *psh = [NBPush new];

psh.query = @{@"channles" : @"TerminalInfo",
              @"_appVersionString" : @{@"$ne" : @"1.0.5"}};
psh.allowedReceivers = @[@"g:eigyo", @"g:kikaku"];
psh.message = @"アプリケーションを最新版に更新してください。";

6.5.2. Push メッセージ(APNs 固有部分)の構築

Push メッセージ APNs 固有部分を設定します。 APNs 固有部分は、NBAPNSFields クラスのインスタンスとして生成します。 クラスメソッドの createFields を呼び出すことで、インスタンスを獲得します。

生成した NBAPNSFields インスタンスは、最終的に Push インスタンスに設定します。

NBAPNSFields *apns = [NBAPNSFields createFields];

apns.badge = @(1);
apns.sound = @"alertsound.aiff";
apns.contentAvaiable = @(1);
apns.category = @"Information";

psh.apnsFields = apns;

6.5.3. Push メッセージの送信

構築した Push メッセージ を送信します。 Push メッセージを送信するには、Push インスタンスの sendPushInBackgroundWithBlock: メソッドを呼び出します。

[psh sendPushInBackgroundWithBlock:^(NSDictionary *resutls, NSError *error) {
    if (!error) {
        // 成功時の処理
    } else {
       // エラー時の処理
    }
}];