此SDK已停止维护,请开发者对接 RestApi V2
开发者可设置推送展示效果,分为通知样式和后续操作。
通知展示时效果:响铃、震动、通知是否可清除。
通知点击后效果:打开应用首页、打开应用内指定页面、打开浏览器指定网页。
即自定义消息,效果由开发者自行管理,个推只负责消息传递,不做任何处理,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 | 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推送需要在代码中通过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时会展示成普通通知 |
类名 | 方法名 | 说明 |
---|---|---|
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;
}
在通知栏显示一条通知,用户点击后打开应用的首页。
针对沉默用户,发送推送消息,点击消息栏的通知可直接激活启动应用,提升应用的转化率。
结构体 | 成员 | 必填 | 说明 |
---|---|---|---|
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 | 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 | 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:2.12.5.0以上
服务端os-sdk:php 4.1.2.0以上
结构体 | 成员 | 必填 | 说明 |
---|---|---|---|
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;
}
以上文档对您是否有帮助?