3

bluemix でサイレントまたは混合リモート通知を送信する方法はありますか? ダッシュボードにはそのようなオプションはありません。

リモート通知を受信するときに、アプリがバックグラウンドでデータをフェッチするようにします。

編集(コメントからコピー&ペースト):

クライアント側で処理する方法ではなく、Bluemix 側から混合プッシュ通知を送信する方法を意味していました。解決策は、REST API を使用することです。

POST https://mobile.eu-gb.bluemix.net/imfpush/v1/apps/$(app_id)/messages 

本体付き:

"settings": { "apns": { "type":'MIXED' }
4

1 に答える 1

-1

通知の処理はクライアント側で行われ、あなたがやりたいことは確かに可能です。ここにリンクされているプッシュ通知の Bluemix ドキュメントから取得

デバイスの画面にサイレント通知は表示されません。これらの通知はバックグラウンドでアプリケーションによって受信され、指定されたバックグラウンド タスクを実行するために最大 30 秒間アプリケーションが起動されます。ユーザーは、通知の到着に気付いていない可能性があります。サイレント プッシュ通知を処理するには、appDelegate.m に次のメソッドを実装します。

// For Objective C

- (void)application:(UIApplication *)application didReceiveRemoteNotification:(NSDictionary *)userInfo fetchCompletionHandler:(void (^)(UIBackgroundFetchResult result))handler
{
    NSNumber *contentAvailable = userInfo[@"aps"][@"content-available"];
    if([contentAvailable intValue]== 1){
        [[IMFPushClient sharedInstance] application:application didReceiveRemoteNotification:userInfo];

        //Perform background task
        NSLog(@"Received a silent push..");
        NSLog(@"userInfo: %@", userInfo.description);
        _appDelegateVC.result.text = userInfo.description;
        handler(UIBackgroundFetchResultNewData);
    }
    else{
        //Normal Notification
        [[IMFPushAppManager get] notificationReceived:userInfo];

        NSLog(@"Received a normal notification.");
        NSLog(@"userInfo: %@", userInfo.description);
        _appDelegateVC.result.text = userInfo.description;
        handler(UIBackgroundFetchResultNoData);

    }
    //Success
}

サイレント通知用にサーバーから送信される contentAvailable 値は 1 です。

于 2015-11-17T15:13:46.863 に答える