zoukankan      html  css  js  c++  java
  • 个推-php ios 离线通知例子


    ios 只能用透传模板在apns参数
    透传消息,即自定义消息,消息体格式客户可以自己定义,如纯文本、json串等。透传消息个推只传递数据,不做任何处理,客户端接收到透传消息后需要自己去做后续动作处理,如通知栏展示、弹框等。
    Ios:
    推送请求发起,根据指定的cid,在我们服务器上会去判断这个cid是否在线:
    1、 如果cid在线,那将直接走个推在线通道,后端推送的TransmissionContent的值将会通过cid去识别传递到对应的手机上,并进入sdk的[GeTuiSdkDelegate GeTuiSdkDidReceivePayloadData]里;在这一块数据传递中TransmissionContent里的内容,个推只负责传递,不会更改,因此这部分展示需要客户端自己处理;
    2、 如果cid离线,这时通过cid绑定的苹果的devicetoken,个推会将后端apnpayload里带的标题内容等参数,通过请求苹果自身的apns服务器通过devicetoken去下发到对应的手机上,这部分是直接离线展示在苹果手机上的;如果客户看了消息后,打开了APP,这时cid是恢复在线了,第一步中的流程会走一遍,因此ios前端需要通过[GeTuiSdkDelegate GeTuiSdkDidReceivePayloadData]里的offLine去判断是否要继续展示透传内容,OffLine为true就说明展示过离线apns通知,透传消息处理成不展示;
    注意:在2中,因为走的苹果apns通道,因此如果个推平台上上传的ios推送证书环境和bundleid与实际客户端上app的证书环境和bundleid不一致的话,苹果将不下发apns通知,因为无法验证通过;

     1 <?php
     2 //ÏûÏ¢ÍÆËÍDemo
     3 header("Content-Type: text/html; charset=utf-8");
     4 require_once(dirname(__FILE__) . '/' . 'IGt.Push.php');
     5 
     6 //²ÉÓÃ"PHP SDK ¿ìËÙÈëÃÅ"£¬ "µÚ¶þ²½ »ñÈ¡·ÃÎÊÆ¾Ö¤ "ÖлñµÃµÄÓ¦ÓÃÅäÖÃ
     7 define('APPKEY','');
     8 define('APPID','');
     9 define('MASTERSECRET','');
    10 define('HOST','http://sdk.open.api.igexin.com/apiex.htm');
    11 define('CID','ÇëÊäÈëÄúµÄCID');
    12 //±ðÃûÍÆËÍ·½Ê½
    13 //define('Alias','ÇëÊäÈëÄúµÄAlias');
    14 
    15 pushMessageToSingle();
    16 
    17 //µ¥Íƽӿڰ¸Àý
    18 function pushMessageToSingle(){
    19     $igt = new IGeTui(HOST,APPKEY,MASTERSECRET);
    20 
    21     //ÏûϢģ°æ£º
    22     $template = IGtTransmissionTemplateDemo();
    23 
    24 
    25     //¶¨Òå"SingleMessage"
    26     $message = new IGtSingleMessage();
    27 
    28     $message->set_isOffline(true);//ÊÇ·ñÀëÏß
    29     $message->set_offlineExpireTime(3600*12*1000);//ÀëÏßʱ¼ä
    30     $message->set_data($template);//ÉèÖÃÍÆËÍÏûÏ¢ÀàÐÍ
    31     //$message->set_PushNetWorkType(0);//ÉèÖÃÊÇ·ñ¸ù¾ÝWIFIÍÆËÍÏûÏ¢£¬2Ϊ4G/3G/2G£¬1ΪwifiÍÆËÍ£¬0Ϊ²»ÏÞÖÆÍÆËÍ
    32     //½ÓÊÕ·½
    33     $target = new IGtTarget();
    34     $target->set_appId(APPID);
    35     $target->set_clientId(CID);
    36 //    $target->set_alias(Alias);
    37 
    38     try {
    39         $rep = $igt->pushMessageToSingle($message, $target);
    40         var_dump($rep);
    41         echo ("<br><br>");
    42 
    43     }catch(RequestException $e){
    44         $requstId =e.getRequestId();
    45         //ʧ°ÜÊ±ÖØ·¢
    46         $rep = $igt->pushMessageToSingle($message, $target,$requstId);
    47         var_dump($rep);
    48         echo ("<br><br>");
    49     }
    50 }
    51 
    52 function IGtTransmissionTemplateDemo(){
    53     $template =  new IGtTransmissionTemplate();
    54     $template->set_appId(APPID);//Ó¦ÓÃappid
    55     $template->set_appkey(APPKEY);//Ó¦ÓÃappkey
    56     $template->set_transmissionType(2);//͸´«ÏûÏ¢ÀàÐÍ
    57     $template->set_transmissionContent("ÔÚÏß»ñÈ¡µÄ͸´«ÄÚÈÝ");//͸´«ÄÚÈÝ
    58     //$template->set_duration(BEGINTIME,ENDTIME); //ÉèÖÃANDROID¿Í»§¶ËÔÚ´Ëʱ¼äÇø¼äÄÚչʾÏûÏ¢
    59     //APN¼òµ¥ÍÆËÍ
    60    $apn = new IGtAPNPayload();
    61     $alertmsg=new DictionaryAlertMsg();
    62     $alertmsg->body="apnsÄÚÈÝ";
    63     $alertmsg->title="apns±êÌâ";
    64    $apn->alertMsg=$alertmsg;
    65     $apn->badge=1;
    66     $apn->sound="";
    67    $apn->contentAvailable=0;
    68     $template->set_apnInfo($apn);
    69     $message = new IGtSingleMessage();
    70     
    71 
    72     return $template;
    73 }
  • 相关阅读:
    Java实现 洛谷 P1060 开心的金明
    (Java实现) 洛谷 P1605 迷宫
    (Java实现) 洛谷 P1605 迷宫
    (Java实现)洛谷 P1093 奖学金
    (Java实现)洛谷 P1093 奖学金
    Java实现 洛谷 P1064 金明的预算方案
    Java实现 洛谷 P1064 金明的预算方案
    (Java实现) 洛谷 P1031 均分纸牌
    QT树莓派交叉编译环开发环境搭建(附多个exe工具下载链接)
    武则天红人对唐睿宗的桃色报复(如此缺少城府,注定了要在宫廷中过早地出局)
  • 原文地址:https://www.cnblogs.com/peipeiyu/p/12132812.html
Copyright © 2011-2022 走看看