首页 | 新闻 | 新品 | 文库 | 方案 | 视频 | 下载 | 商城 | 开发板 | 数据中心 | 座谈新版 | 培训 | 工具 | 博客 | 论坛 | 百科 | GEC | 活动 | 主题月 | 电子展
返回列表 回复 发帖

iOS 普通推送和静默推送(2)

iOS 普通推送和静默推送(2)

普通推送->服务端格式:

        $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里面的指定内容
      ...
    }
返回列表