web-dev-qa-db-ja.com

Appleカスタムデータの送信を伴うプッシュ通知

PhpジョブアプリケーションからiPhoneにプッシュ通知を送信しています。新しいジョブに関するプッシュ通知を送信しています。これは、ユーザーがプッシュ通知ポップアップのビューをクリックすると、デバイス内の特定のジョブにリダイレクトされる可能性があります。

つまり、jobIdなどのプッシュ通知を使用してカスタムデータを送信できるかどうかを知りたいので、iPhoneが特定のジョブを取得して表示できるようになります。

ありがとう。

52
vikas

使用する言語とライブラリに関係なく、プッシュ通知ペイロードはJSONペイロードです。

{
    "aps": {
         "badge": 10,
         "alert": "Hello world!",
         "sound": "cat.caf"
    }
}

apsトークンはApple APNデータです。ペイロードにカスタムデータを追加することもできます。

{
    "aps": {
         "badge": 10,
         "alert": "Hello world!",
         "sound": "cat.caf"
    },
    "job_id": 1
}

アプリで通知を受信したら、通知辞書でパラメーターを確認します。

- (void)handleBackgroundNotification:(NSDictionary *)notification
{
    NSDictionary *aps = (NSDictionary *)[notification objectForKey:@"aps"];
    NSMutableString *alert = [NSMutableString stringWithString:@""];
    if ([aps objectForKey:@"alert"])
    {
        [alert appendString:(NSString *)[aps objectForKey:@"alert"]];
    }
    if ([notification objectForKey:@"job_id"])
    {
        // do something with job id
        int jobID = [[notification objectForKey:@"job_id"] intValue];
    }
}

ペイロードの合計サイズは256bytesであり、もちろんカスタムパラメーターも含まれることに注意してください。したがって、バイトを圧縮するには、「job_id」の代わりにカスタムパラメータ「ji」を呼び出す必要があります(読みやすさを低下させるリスクがあります)。

これらはすべて、iOSドキュメントの ローカルおよびプッシュ通知プログラミングガイド に記載されています。それは最初に聞こえるよりも複雑なので、間違いなく読み取りをお勧めします(少なくとも、それは私が考えたものです)。

119
typeoneerror

はい、カスタムデータを送信できます。すべてのプッシュ通知のニーズについて apns-php library を確認してください。

8
Arfeen