How to send a silent Push Notification payload

后端 未结 2 1787
孤城傲影
孤城傲影 2020-11-29 00:19

I just want to know how I can determine what action to do on a silent push:

This is the aps that I sent to the client:

\"aps\": {
    \"         


        
相关标签:
2条回答
  • 2020-11-29 00:55

    As i understand, you want extra data inside payload, so you can identify what push notification type is,or what action need to be handled.

    For that edit your payload as:

     $body = array(
        'content-available' => 1,
        'sound' => ''
        );  
    
    $payload = array();
    $payload['aps'] = $body;
    $payload['action'] = 'order_update';
    

    Then in your iOS Code:

    - (void)application:(UIApplication *)application didReceiveRemoteNotification:(NSDictionary *)userInfo
    {
    
    
        NSString *action = userInfo["action"];
    
    
        if([userInfo[@"aps"][@"content-available"] intValue]== 1 && [action isEqualToString:@"order_update") //order update notification
        {
            //handle Your Action here
            return;
        }
    
    
    }
    

    Hope this solves your problem!

    0 讨论(0)
  • 2020-11-29 01:06

    There are a few options for it! Let's take a small ride to understand all the different payloads and their usage.


    Simple Payload

    Displayed in Notification Center : Yes

    Wakes app to perform background task : No

    {
        "aps" : {
            "alert" : "You received simple notification!",
            "badge" : 1,
            "sound" : "default"
        }
    }
    

    Payload With Custom Notification Sound

    Displayed in Notification Center : Yes

    Wakes app to perform background task : No

    Step 1 : Add custom notification sound file (.wav or .aiff extensions only. e.g. notification.wav) in your app bundle.

    Step 2 : Configure your payload as shown below to play your custom sound

    {
        "aps" : {
            "alert" : "It's a custom notification sound!",
            "badge" : 1,
            "sound" : "notification.wav"
        }
    }
    

    Notification With Custom Payload

    Displayed in Notification Center : Yes

    Wakes app to perform background task : No

    {
        "aps" : {
            "alert" : "It's a notification with custom payload!",
            "badge" : 1,
            "content-available" : 0         
        },
        "data" :{
            "title" : "Game Request",
            "body" : "Bob wants to play poker",
            "action-loc-key" : "PLAY"
        },
    
    }
    

    Here the data dictionary holds custom information whatever you want. It will also display as normal notification with the alert message "It's a notification with custom payload!".


    Normal Silent Notification

    It will not a show an alert as a notification bar; it will only notify your app that there is some new data available, prompting the app to fetch new content.

    Displayed in Notification center : No

    Awake app to perform background task : Yes

    {
        "content-available" : 1
    }
    

    Silent Notification With Custom Payload

    Here comes the magic to show a notification alert as well awake your app in background for a task! (Note: only if it's running in background and has not been killed explicitly by the user.) Just add the extra parameter "content-available" : 1 in your payload.

    Displayed in Notification Center : Yes

    Wakes app to perform background task : Yes

    {
        "aps" : {
            "alert" : "Notification with custom payload!",
            "badge" : 1,
            "content-available" : 1
        },
         "data" :{
            "title" : "Game Request",
            "body" : "Bob wants to play poker",
            "action-loc-key" : "PLAY"
         }
    }
    

    Use any of these payloads according to your app requirements. For background app refresh refer to Apple's documentation. I hope this gives you all the necessary information. Happy coding :)

    0 讨论(0)
提交回复
热议问题