推送模板说明

推送模板说明

简述

开发者可设置推送展示效果,分为通知样式和后续操作。

推送效果:

  • 通知消息:

通知展示时效果:响铃、震动、通知是否可清除。

通知点击后效果:打开应用首页、打开应用内指定页面、打开浏览器指定网页。

  • 透传消息:

即自定义消息,效果由开发者自行管理,个推只负责消息传递,不做任何处理,APP在接收到透传消息后可按自身需求处理消息的展示方式或后续动作。

设置步骤

STEP1:选择合适的推送模板,决定后续操作。

STEP2:设置推送其他参数

STEP3:执行推送

示例说明

    // STEP1:选择模板
    $template =  new IGtNotificationTemplate();
    // 设置APPID与APPKEY    
    $template->set_appId(APPID);//应用appid
    $template->set_appkey(APPKEY);//应用appkey
    //设置模板参数
    $template->set_transmissionType(1);//透传消息类型
    $template->set_transmissionContent("测试离线");//透传内容
    $template->set_title("请输入通知栏标题");//通知栏标题
    $template->set_text("请输入通知栏内容");//通知栏内容
    $template->set_logo("http://wwww.igetui.com/logo.png");//通知栏logo
    $template->set_isRing(true);//是否响铃
    $template->set_isVibrate(true);//是否震动
    $template->set_isClearable(true);//通知栏是否可清除    

    // STEP2:设置推送其他参数
    $message = new IGtSingleMessage();
    $message->set_isOffline(true);
    $message->set_offlineExpireTime(60 * 60 * 1000);
    $message->set_data($template);

    $target = new IGtTarget();
    $target->set_appId("APPID");
    $target->set_clientId("CID");

    // STEP3:执行推送
    $ret = $igt->pushMessageToSingle($message, $target);

【透传模板】自定义消息

描述

透传消息是指消息传递到客户端只有消息内容,展现形式由客户端自行定义。客户端可自定义通知的展现形式,也可自定义通知到达之后的动作,或者不做任何展现。

对应模板(TransmissionTemplate)

参数说明

结构体 成员 必填 说明
TransmissionTemplate set_appId 设定接收的应用
set_appKey 用于鉴定身份是否合法
set_transmissionContent 透传内容,不支持转义字符
set_transmissionType 收到消息是否立即启动应用,1为立即启动(不推荐使用,影响客户体验),2则广播等待客户端自启动
set_duration 消息展示时间(格式yyyy-MM-dd HH:mm:ss)
set_pushInfo iOS推送使用该字段

代码示例

function IGtTransmissionTemplateDemo(){
    $template =  new IGtTransmissionTemplate();
    //应用appid
    $template->set_appId(APPID);
    //应用appkey
    $template->set_appkey(APPKEY);
    //透传消息类型
    $template->set_transmissionType(1);
    //透传内容
    $template->set_transmissionContent("测试离线");
    //$template->set_duration(BEGINTIME,ENDTIME); //设置ANDROID客户端在此时间区间内展示消息
    //这是老方法,新方法参见iOS模板说明(PHP)*/
    //$template->set_pushInfo("actionLocKey","badge","message",
    //"sound","payload","locKey","locArgs","launchImage");
    return $template;
}

iOS推送说明

iOS推送需要在代码中通过TransmissionTemplate的setAPNInfo接口设置相应的APNs通知参数。
透传模板传输的数据最大为是3KB,APNs传输数据最大支持3KB。

对应接口

set_apnInfo($apn)

参数描述:

set_apnInfo具体参数含义详见苹果APNs文档:
https://developer.apple.com/library/content/documentation/NetworkingInternet/Conceptual/RemoteNotificationsPG/PayloadKeyReference.html
注:AutoBadge、AlertMsg、Sound(不设置无声)必须至少设置一项

参数说明:

结构体 成员 说明
APNPayload Badge 应用icon上显示的数字
ContentAvailable 推送直接带有透传数据
Sound 通知铃声文件名
Category 在客户端通知栏触发特定的action和button显示
addCustomMsg 增加自定义的数据
voicePlayType 设置语音播报类型
voicePlayMessage 设置语音播报内容
threadId ios的远程通知通过该属性对通知进行分组,仅支持iOS 12.0以上版本
apnsCollapseId 使用相同的apnsCollapseId可以覆盖之前的消息
sound_d Sound对象,sound支持Dictionary类型,可以控制“警告性质的推送”,会覆盖Sound,仅支持iOS 12.0以上版本
APNPayload.SimpleAlertMsg SimpleAlertMsg 通知文本消息字符串
APNPayload.DictionaryAlertMsg Body 通知文本消息字符串
ActionLocKey (用于多语言支持)指定执行按钮所使用的Localizable.strings
LocKey (用于多语言支持)指定Localizable.strings文件中相应的key
addLocArgs 如果loc-key中使用的占位符,则在loc-args中指定各参数
LaunchImage 指定启动界面图片名
Title 通知标题
TitleLocKey (用于多语言支持)对于标题指定执行按钮所使用的Localizable.strings,仅支持iOS8.2以上版本
TitleLocArg 对于标题, 如果loc-key中使用的占位符,则在loc-args中指定各参数,仅支持iOS8.2以上版本
subtitle 设置子标题,仅支持iOS8.2以上版本
subtitleLocKey 设置当前本地化文件中的子标题字符串的关键字,仅支持iOS8.2以上版本
subtitleLocArgs 设置当前本地化子标题内容中需要置换的变量参数 ,仅支持iOS8.2以上版本
类名 方法名 说明
Sound set_critical($critical) 临界警报标志。设置为1以启用临界警报
set_name($name) 声音文件名
set_volume($volume) 临界警报声音的音量。将此设置为0(无声)和1(全音量)之间的值
类名 方法名 说明
MultiMedia set_rid($rid) 设置资源id
set_url($url) 设置资源url
set_type($type) 设置资源类别
MediaType.pic 图片
MediaType.audio 音频
MediaType.video 视频
set_onlywifi($onlywifi) 设置是否在WIFI下才展示多媒体消息,如果设置true但未使用WIFI时会展示成普通通知
  • VoIP推送
类名 方法名 说明
VoIPPayload setVoIPPayload($voIPPayload) 设置VoIP内容,建议使用JSON格式

代码示例:

function IGtTransmissionTemplateDemo(){
    $template =  new IGtTransmissionTemplate();
    $template->set_appId(APPID);//应用appid
    $template->set_appkey(APPKEY);//应用appkey
    $template->set_transmissionType(1);//透传消息类型
    $template->set_transmissionContent("测试离线ddd");//透传内容
    //$template->set_duration(BEGINTIME,ENDTIME); //设置ANDROID客户端在此时间区间内展示消息
    //APN简单推送
//  $template = new IGtAPNTemplate();
//  $apn = new IGtAPNPayload();
//  $alertmsg=new SimpleAlertMsg();
//  $alertmsg->alertMsg="";
//  $apn->alertMsg=$alertmsg;
//  $apn->badge=2;
//  $apn->sound="";
//  $apn->add_customMsg("payload","payload");
//  $apn->contentAvailable=0;
//  $apn->category="ACTIONABLE";
//  $template->set_apnInfo($apn);
//  $message = new IGtSingleMessage();
    //  APN高级推送
    $apn = new IGtAPNPayload();
    $alertmsg=new DictionaryAlertMsg();
    $alertmsg->body="body";
    $alertmsg->actionLocKey="ActionLockey";
    $alertmsg->locKey="LocKey";
    $alertmsg->locArgs=array("locargs");
    $alertmsg->launchImage="launchimage";
    //  IOS8.2 支持
    $alertmsg->title="Title";
    $alertmsg->titleLocKey="TitleLocKey";
    $alertmsg->titleLocArgs=array("TitleLocArg");
    $alertmsg->subtitle="subtitle";
    $alertmsg->subtitleLocKey="subtitleLocKey";
    $alertmsg->subtitleLocArgs=array("subtitleLocArgs");

    $apn->alertMsg=$alertmsg;
    $apn->badge=7;
    $apn->sound="";
    $apn->add_customMsg("payload","payload");
    //设置语音播报类型,int类型,0.不可用 1.播放body 2.播放自定义文本
    $apn->voicePlayType = 2;
    //设置语音播报内容,String类型,非必须参数,用户自定义播放内容,仅在voicePlayMessage=2时生效
    //注:当"定义类型"=2, "定义内容"为空时则忽略不播放
    $apn->voicePlayMessage = "定义内容";
    $apn->contentAvailable=0;
    $apn->category="ACTIONABLE";
    $apn->set_threadId("threadId");
    $sound_d = new Sound();
    $sound_d->set_name("name");
    $sound_d->set_critical(1);
    $sound_d->set_volume(0.5);
    $apn->set_sound_d($sound_d);
    //IOS多媒体消息处理
    $media = new IGtMultiMedia();
    $media -> set_url("http://docs.getui.com/start/img/pushapp_android.png");
    $media -> set_onlywifi(false);
    $media -> set_type(MediaType::pic);
    $medias = array();
    $medias[] = $media;
    //$apn->set_multiMedias($medias);
    $template->set_apnInfo($apn);

    return $template;
}

【通知模板】 打开应用首页

描述

在通知栏显示一条通知,用户点击后打开应用的首页。

应用场景

针对沉默用户,发送推送消息,点击消息栏的通知可直接激活启动应用,提升应用的转化率。

对应模板(NotificationTemplate)

参数说明

结构体 成员 必填 说明
Notification set_appId 设定接收的应用
set_appKey 用于鉴定身份是否合法
set_title 通知标题
set_text 通知内容
set_logo 通知的图标名称,包含后缀名(需要在客户端开发时嵌入),如“push.png”
set_logoURL 通知的图标url地址
set_isRing 收到通知是否响铃:true响铃,false不响铃。默认响铃。
set_isVibrate 收到通知是否振动:true振动,false不振动。默认振动。
set_isClearable 通知是否可清除:true可清除,false不可清除。默认可清除。
set_transmissionType 收到消息是否立即启动应用:1为立即启动,2则广播等待客户端自启动
set_transmissionContent 透传内容,不支持转义字符
set_duration 消息展示时间(格式yyyy-MM-dd HH:mm:ss)
set_notifyStyle 通知栏消息布局样式(0 系统样式 1 个推样式) 默认为0
set_channel 通知渠道id,唯一标识,用户自定义
set_channelName 通知渠道名称,用户自定义
set_channelLevel 该字段代表通知渠道重要性,具体值有0、1、2、3、4;
设置之后不能修改;具体展示形式如下:
0:无声音,无震动,不显示。(不推荐)
1:无声音,无震动,锁屏不显示,通知栏中被折叠显示,导航栏无logo。
2:无声音,无震动,锁屏和通知栏中都显示,通知不唤醒屏幕。
3:有声音,有震动,锁屏和通知栏中都显示,通知唤醒屏幕。(推荐)
4:有声音,有震动,亮屏下通知悬浮展示,锁屏通知以默认形式展示且唤醒屏幕。(推荐)
set_notifyId 在消息推送的时候设置notifyid。如果需要覆盖此条消息,则下次使用相同的notifyid发一条新的消息。客户端sdk会根据notifyid进行覆盖。详见消息覆盖

代码示例

function IGtNotificationTemplateDemo(){
    $template =  new IGtNotificationTemplate();
    $template->set_appId(APPID);                      //应用appid
    $template->set_appkey(APPKEY);                    //应用appkey
    $template->set_transmissionType(1);               //透传消息类型
    $template->set_transmissionContent("测试离线");   //透传内容
    $template->set_title("请填写通知标题");                     //通知栏标题
    $template->set_text("请填写通知内容");        //通知栏内容
    $template->set_logo("logo.png");                  //通知栏logo
    $template->set_logoURL("http://wwww.igetui.com/logo.png"); //通知栏logo链接
    $template->set_isRing(true);                      //是否响铃
    $template->set_isVibrate(true);                   //是否震动
    $template->set_isClearable(true);                 //通知栏是否可清除
    //$template->set_duration(BEGINTIME,ENDTIME); //设置ANDROID客户端在此时间区间内展示消息
    $template->set_channel("set_channel");
    $template->set_channelName("set_channelName");
    $template->set_channelLevel(3);
    $template->set_notifyId(12345678);
    return $template;
}

【通知模板】 打开浏览器网页

描述

在通知栏显示一条通知,用户点击可打开浏览器的指定网页。

应用场景

推广促销活动,用户点击通知栏信息,直接打开到指定的促销活动页面,推送直接到达指定页面,免去了中间过程的用户流失。

对应模板(LinkTemplate)

参数说明

结构体 成员 必填 说明
LinkTemplate set_appId 设定接收的应用
set_appKey 用于鉴定身份是否合法
set_title 通知标题
set_text 通知内容
set_logo 通知的图标名称,包含后缀名(需要在客户端开发时嵌入),如“push.png”
set_logoURL 通知的图标url地址
set_isRing 收到通知是否响铃:true响铃,false不响铃。默认响铃。
set_isVibrate 收到通知是否振动:true振动,false不振动。默认振动。
set_isClearable 通知是否可清除:true可清除,false不可清除。默认可清除。
set_url 点击通知后打开的网页地址
set_duration 消息展示时间(格式yyyy-MM-dd HH:mm:ss)
set_notifyStyle 通知栏消息布局样式(0 系统样式 1 个推样式) 默认为0
set_channel 通知渠道id,唯一标识,用户自定义
set_channelName 通知渠道名称,用户自定义
set_channelLevel 该字段代表通知渠道重要性,具体值有0、1、2、3、4;
设置之后不能修改;具体展示形式如下:
0:无声音,无震动,不显示。(不推荐)
1:无声音,无震动,锁屏不显示,通知栏中被折叠显示,导航栏无logo。
2:无声音,无震动,锁屏和通知栏中都显示,通知不唤醒屏幕。
3:有声音,有震动,锁屏和通知栏中都显示,通知唤醒屏幕。(推荐)
4:有声音,有震动,亮屏下通知悬浮展示,锁屏通知以默认形式展示且唤醒屏幕。(推荐)
set_notifyId 在消息推送的时候设置notifyid。如果需要覆盖此条消息,则下次使用相同的notifyid发一条新的消息。客户端sdk会根据notifyid进行覆盖。详见消息覆盖

代码示例

function IGtLinkTemplateDemo(){
    $template =  new IGtLinkTemplate();
    $template ->set_appId(APPID);                  //应用appid
    $template ->set_appkey(APPKEY);                //应用appkey
    $template ->set_title("请输入通知标题");       //通知栏标题
    $template ->set_text("请输入通知内容");        //通知栏内容
    $template->set_logo("");                       //通知栏logo
    $template->set_logoURL("");                    //通知栏logo链接
    $template ->set_isRing(true);                  //是否响铃
    $template ->set_isVibrate(true);               //是否震动
    $template ->set_isClearable(true);             //通知栏是否可清除
    $template ->set_url("http://www.igetui.com/"); //打开连接地址
    //$template->set_duration(BEGINTIME,ENDTIME); //设置ANDROID客户端在此时间区间内展示消息
    $template->set_channel("set_channel");
    $template->set_channelName("set_channelName");
    $template->set_channelLevel(3);
    $template->set_notifyId(12345678);
    return $template;
}

【通知模板】 打开应用内页面

描述

在通知栏显示一条通知,用户点击后打开应用内指定的页面。

应用场景

推广促销活动,用户点击通知栏信息,直接打开到应用内指定的促销活动页面。

对应模板(StartActivityTemplate)

参数说明

结构体 成员 必填 说明
StartActivityTemplate set_appId 设定接收的应用
set_appKey 用于鉴定身份是否合法
set_intent 【Android】长度小于1000字节,通知带intent传递参数(以intent:开头,;end结尾)
示例:intent:#Intent;component=你的包名/你要打开的 activity 全路径;S.parm1=value1;S.parm2=value2;end
intent生成请参考
set_text 通知内容
set_title 通知标题
set_logo 通知的图标名称,包含后缀名(需要在客户端开发时嵌入),如“icon.png”,小LOGO,默认push_small.png,需要提前内置到客户端
set_logoURL 通知图标URL地址,小米、华为有些机型不支持此参数
set_isRing 收到通知是否响铃:true响铃,false不响铃。默认响铃。
set_isVibrate 收到通知是否振动:true振动,false不振动。默认振动。
set_isClearable 通知是否可清除: true可清除,false不可清除。默认可清除。
set_duration 【Android】格式yyyy-MM-dd HH:mm:ss, 收到消息后,在此时间区间展示,如果此区间APP不在前台,就会错过展示,例如2019年10月14日8点-2019年10月14日9点,展示早间新闻
set_notifyStyle 通知栏消息布局样式(0 系统样式 1 个推样式) 默认为0
set_notifyId 在消息推送的时候设置notifyid。如果需要覆盖此条消息,则下次使用相同的notifyid发一条新的消息。客户端sdk会根据notifyid进行覆盖。详见消息覆盖
setSmsInfo 设置短信相关参数,详见短信补量

代码示例

function IGtStartActivityTemplateDemo(){
    $template = new IGtStartActivityTemplate();

    $template->set_appId(APPID);//应用appid
    $template->set_appkey(APPKEY);//应用appkey
    $template->set_intent("");
    $template->set_title("个推");//通知栏标题
    $template->set_text("个推最新版点击下载");//通知栏内容
    $template->set_logo("");//通知栏logo
    $template->set_logoURL("http://*");
    $template->set_isRing(true);//是否响铃
    $template->set_isVibrate(true);//是否震动
    $template->set_isClearable(true);//通知栏是否可清除
    //$template->set_duration("XXXX-XX-XX XX:XX:XX","XXXX-XX-XX XX:XX:XX");
    //$smsMessage = new SmsMessage();//设置短信通知
    //$smsMessage->setPayload("1234");
    //$smsMessage->setUrl("http://www/getui");
    //$smsMessage->setSmsTemplateId("123456789");
    //$smsMessage->setOfflineSendtime(1000);
    //$smsMessage->setIsApplink(true);
    //$template->setSmsInfo($smsMessage);
    $template->set_notifyId(123456543);
    return $template;
}

【通知模板】通知消息撤回

描述

消息撤回是指对已经发送的个推通道消息进行撤回。客户端接收到消息撤回的指令,会将通知栏中展示的消息进行删除,不再展示。

sdk版本要求

客户端sdk:2.12.5.0以上

服务端os-sdk:php 4.1.2.0以上

撤回使用限制

  1. 支持任务类型:os-sdk撤回模板支持撤回单推、群推、toApp任务。
  2. 支持模板:只支持撤回通知、不支持透传
  3. Android只支持撤回个推通道下发的通知,通过手机厂商通道下发的通知不支持撤回

对应模板 (RevokeTemplate)

参数说明

结构体 成员 必填 说明
RevokeTemplate set_appId 设定接收的应用
set_appKey 用于鉴定身份是否合法
set_oldTaskId 指定需要撤回消息对应的taskId
set_force 默认false, 【Android】客户端没有找到对应的taskid,是否把对应appid下所有的通知都撤回

代码示例

    function getRevokeTemplateDemo(){
        $revoke = new IGtRevokeTemplate();
        $revoke->set_appId("appid");
        $revoke->set_appkey("appkey");
        $revoke->set_oldTaskId("taskId");
        $revoke->set_force(false);
        return $revoke;
    }
开发者中心 SDK 下载

文档中心搜索

在线
咨询

微信扫一扫

随时联系技术支持

在线
咨询