普通推送->服务端格式:
$alertmsg=new DictionaryAlertMsg();// 必须有。 声明DictionaryAlertMsg的对象alertmsg
$alertmsg->body=$msgContent;// 必须有。 为body赋值
$alertmsg->title=SYS_ZH_NAME;// 必须有。 为title赋值
$apn = new IGtAPNPayload();// 必须有。 声明IGtAPNPayload的对象apn
$apn->alertMsg=$alertmsg;// 必须有alertmsg,且alertmsg中一定有title以及和body,因为这就是客户端在通知栏/横幅看到的标题和内容。
$apn->contentAvailable=0;// 必须为0
$apn->sound=$client_notice;// 必须有sound
$apn->badge=1;// 角标,可有可无
$apn->add_customMsg("msg",$msgContent);// msg,可有可无
普通推送->客户端格式:
{
"aps" : {
"sound" : "notice_type1.caf",// 必须有sound
"alert" : { // 必须有。 服务器端一定要有alertmsg
"title" : "一秒招聘",// 必须有
"body" : "有一条新的招工信息,点击查看详情" // 必须有
},
"badge" : 1,// 角标,可有可无
},
"msg" : "有一条新的招工信息,点击查看详情"// msg可有可无
}
静默推送(安安静静的、用户感知不到):当APP离线时,当有推送下达的时候,通知栏/横幅中没有文字,同时也不会发出声音)
1.应用被杀死或者应用未启动,不会执行如下的代码。
2.应用退出到后台,当收到通知的时候(不点开通知,也不打开APP哦),就会立刻执行如下的代码CCC。 所以静默推送的定义也就出现了:应用收到通知后在后台(background)状态下可以执行下面一段代码CCC,可用于从服务器获取内容更新,做你想做的任何操作(跳转界面,文字转语音并读出声音),所以静默推送不同于其他推送,其他推送不能执行代码CCC。
3.APP离线收到推送,点击应用图标进入APP/点开通知栏中的通知/点开横幅中的通知进入APP,会执行个推提供的 方法DDD的离线的透传消息
4.APP在线收到推送,就不走APNs,会直接执行个推提供的 方法DDD的在线的透传消息
代码CCC
- (void)applicationUIApplication *)application didReceiveRemoteNotificationNSDictionary *)userInfo fetchCompletionHandlervoid (^)(UIBackgroundFetchResult))completionHandler{
...
做你想做的操作:这里我用苹果自带的文字转语音播放userInfo里面的指定内容
...
} |