此SDK已停止维护,请开发者对接 RestApi V2
开发者可设置推送展示效果,分为通知样式和后续操作。
通知展示时效果:响铃、震动、通知是否可清除,下拉大图、长文本。
通知点击后效果:打开应用首页、打开应用内指定页面、打开浏览器指定网页。
即自定义消息,效果由开发者自行管理,个推只负责消息传递,不做任何处理,默认不会在通知栏中展示,开发者需自行处理展示方式或后续动作。
STEP1:选择合适的推送模板,决定后续操作。
STEP2:(仅通知模板)添加模板中的style属性,设置通知样式。
STEP3:设置推送其他参数
STEP4:执行推送
# STEP1:选择模板
template = NotificationTemplate()
# 设置APPID与APPKEY
template.appId = APPID
template.appKey = APPKEY
# STEP2:设置通知样式
style = Style0()
# 设置通知栏标题与内容
style.title = "请输入通知栏标题"
style.text = "请输入通知栏内容"
# 配置通知栏图标
style.logo = "icon.png"
# 配置通知栏网络图标
style.logoUrl = ""
# 设置通知是否响铃,震动,或者可清除
style.isRing = True
style.isVibrate = True
style.isClearable = True
style.channel = "通知渠道id"
style.channelName = "通知渠道名称"
style.channelLevel = 3 # 设置通知渠道重要性
template.style = style
# STEP3:设置推送其他参数
message = IGtSingleMessage()
message.data = template
# STEP4:执行推送
push.pushMessageToSingle(message, target)
透传消息是指消息传递到客户端只有消息内容,展现形式由客户端自行定义。客户端可自定义通知的展现形式,也可自定义通知到达之后的动作,或者不做任何展现。
成员和方法名 | 类型 | 必填 | 默认值 | 说明 |
---|---|---|---|---|
appId | String | 是 | 设定接收的应用 | |
appKey | String | 是 | 用于鉴定身份是否合法 | |
transmissionContent | String | 是 | 透传内容,不支持转义字符 | |
transmissionType | int | 是 | 搭配transmissionContent使用,可选值为1、2; 1:立即启动APP(不推荐使用,影响客户体验) 2:客户端收到消息后需要自行处理 |
|
setApnInfo() | Payload | 否 | 【iOS】用于设置标题、内容、语音、多媒体、VoIP(基于IP的语音传输)等。离线走APNs时起效果,具体样式见iOS通知样式 | |
setSmsInfo() | SmsInfo | 否 | 设置短信相关参数,详见短信补量 |
def transmissionTemplateDemo():
template = TransmissionTemplate()
template.appId = APPID
template.appKey = APPKEY
template.transmissionType = 2
template.transmissionContent = "请输入需要透传的内容"
return template
在通知栏显示一条通知,用户点击后打开应用的首页。
针对沉默用户,发送推送消息,点击消息栏的通知可直接激活启动应用,提升应用的转化率。
成员和方法名 | 类型 | 必填 | 默认值 | 说明 |
---|---|---|---|---|
appId | String | 是 | 设定目标应用 | |
appKey | String | 是 | 用于鉴定身份是否合法 | |
setDuration() | String, String | 否 | 【Android】格式yyyy-MM-dd HH:mm:ss, 收到消息后,在此时间区间展示,如果此区间APP不在前台,就会错过展示,例如2019年8月14日8点-2019年8月14日9点,展示早间新闻 | |
transmissionContent | String | 否 | 透传内容,不在通知栏中展示,开发者自行处理,不支持转义字符 | |
transmissionType | int | 否 | 搭配transmissionContent使用,可选值为1、2; 1:立即启动APP 2:客户端收到消息后需要自行处理 |
|
style | AbstractNotifyStyle | 否 | - | 【Android】用于设置标题、内容、提示音、震动、背景图等。具体样式见Android通知样式 |
notifyid | int | 否 | 0 | 【Android】在消息推送的时候设置notifyid。如果需要覆盖此条消息,则下次使用相同的notifyid发一条新的消息。客户端sdk会根据notifyid进行覆盖。详见消息覆盖 |
setSmsInfo() | SmsInfo | 否 | 设置短信相关参数,详见短信补量 |
def notificationTemplateDemo():
template = NotificationTemplate()
template.appId = APPID
template.appKey = APPKEY
template.transmissionType = 1
template.transmissionContent = "请输入您要透传的内容"
style = new Style0();
# 设置通知栏标题与内容
style.title = "请输入通知栏标题"
style.text = "请输入通知栏内容"
# 配置通知栏图标
style.logo = "icon.png"
# 配置通知栏网络图标
style.logoUrl = ""
# 设置通知是否响铃,震动,或者可清除
style.isRing = True
style.isVibrate = True
style.isClearable = True
style.channel = "自定义channel"
style.channelName = "自定义channelName"
style.channelLevel = 3
template.style = style
# 设置定时展示时间,安卓机型可用
# template.setDuration("2019-08-16 11:40:00", "2019-08-16 12:24:00")
# 消息覆盖
# template.notifyid = 123 # 在消息推送的时候设置自定义的notifyid。如果需要覆盖此条消息,则下次使用相同的notifyid发一条新的消息。客户端sdk会根据notifyid进行覆盖。
return template
在通知栏显示一条通知,用户点击后打开应用内指定的页面。
推广促销活动,用户点击通知栏信息,直接打开到应用内指定的促销活动页面。
成员和方法名 | 类型 | 必填 | 默认值 | 说明 |
---|---|---|---|---|
appId | String | 是 | 设定目标应用 | |
appKey | String | 是 | 用于鉴定身份是否合法 | |
setDuration() | String, String | 否 | 【Android】格式yyyy-MM-dd HH:mm:ss, 收到消息后,在此时间区间展示,如果此区间APP不在前台,就会错过展示,例如2019年8月14日8点-2019年8月14日9点,展示早间新闻 | |
intent | String | 是 | 【Android】长度小于1000字节,通知带intent传递参数(以intent: 开头,;end 结尾)示例:intent:#Intent;component=你的包名/你要打开的 activity 全路径;S.parm1=value1;S.parm2=value2;end intent生成请参考 |
|
style | AbstractNotifyStyle | 否 | - | 【Android】用于设置标题、内容、提示音、震动、背景图等。具体样式见Android通知样式 |
notifyid | int | 否 | 0 | 【Android】在消息推送的时候设置notifyid。如果需要覆盖此条消息,则下次使用相同的notifyid发一条新的消息。客户端sdk会根据notifyid进行覆盖。详见消息覆盖 |
setSmsInfo | SmsInfo | 否 | 设置短信相关参数,详见短信补量 |
def startActivityTemplateDemo():
template = StartActivityTemplate()
template.appId = APPID
template.appKey = APPKEY
style = Style0()
# 设置通知栏标题与内容
style.title = "请输入通知栏标题"
style.text = "请输入通知栏内容"
# 配置通知栏图标
style.logo = "icon.png"
# 配置通知栏网络图标
style.logoUrl = ""
# 设置通知是否响铃,震动,或者可清除
style.isRing = True
style.isVibrate = True
style.isClearable = True
style.channel = "自定义channel"
style.channelName = "自定义channelName"
style.channelLevel = 3
template.style = style
intent = "intent://Intent;component=com.yourpackage/.NewsActivity;end"
template.intent = intent #最大长度限制为1000
# 设置定时展示时间,安卓机型可用
# template.setDuration("2019-08-16 11:40:00", "2019-08-16 12:24:00")
# 消息覆盖
# template.notifyid = 123 # 在消息推送的时候设置自定义的notifyid。如果需要覆盖此条消息,则下次使用相同的notifyid发一条新的消息。客户端sdk会根据notifyid进行覆盖。
return template;
在通知栏显示一条通知,用户点击可打开浏览器的指定网页。
推广促销活动,用户点击通知栏信息,直接打开到指定的促销活动页面,推送直接到达指定页面,免去了中间过程的用户流失。
成员和方法名 | 类型 | 必填 | 默认值 | 说明 |
---|---|---|---|---|
appId | String | 是 | 设定目标应用 | |
appKey | String | 是 | 用于鉴定身份是否合法 | |
url | String | 是 | 点击通知后打开的网页地址 | |
setDuration | String, String | 否 | 【Android】格式yyyy-MM-dd HH:mm:ss, 收到消息后,在此时间区间展示,如果此区间APP不在前台,就会错过展示,例如2019年8月14日8点-2019年8月14日9点,展示早间新闻 | |
style | AbstractNotifyStyle | 否 | - | 【Android】用于设置标题、内容、提示音、震动、背景图等。具体样式见Android通知样式 |
notifyid | int | 否 | 0 | 【Android】在消息推送的时候设置notifyid。如果需要覆盖此条消息,则下次使用相同的notifyid发一条新的消息。客户端sdk会根据notifyid进行覆盖。详见消息覆盖 |
setSmsInfo | SmsInfo | 否 | 设置短信相关参数,详见短信补量 |
def linkTemplateDemo():
template = LinkTemplate()
template.appId = APPID
template.appKey = APPKEY
style = Style0()
# 设置通知栏标题与内容
style.title = "请输入通知栏标题"
style.text = "请输入通知栏内容"
# 配置通知栏图标
style.logo = "icon.png"
# 配置通知栏网络图标
style.logoUrl = ""
# 设置通知是否响铃,震动,或者可清除
style.isRing = True
style.isVibrate = True
style.isClearable = True
style.channel = "自定义channel"
style.channelName = "自定义channelName"
style.channelLevel = 3
template.style = style
# 设置打开的网址地址
template.url = "http://www.getui.com"
# 设置定时展示时间,安卓机型可用
# template.setDuration("2019-08-16 11:40:00", "2019-08-16 12:24:00")
# 消息覆盖
# template.notifyid = 123 # 在消息推送的时候设置自定义的notifyid。如果需要覆盖此条消息,则下次使用相同的notifyid发一条新的消息。客户端sdk会根据notifyid进行覆盖。
return template
消息撤回是指对已经发送的个推通道消息进行撤回。客户端接收到消息撤回的指令,会将通知栏中展示的消息进行删除,不再展示。
客户端sdk:2.12.5.0以上
服务端os-sdk:python3 4.1.1.0以上
成员和方法名 | 类型 | 必填 | 默认值 | 说明 |
---|---|---|---|---|
appId | String | 是 | 设定目标应用 | |
appKey | String | 是 | 用于鉴定身份是否合法 | |
oldTaskId | String | 是 | 指定需要撤回消息对应的taskId | |
force | Boolean | 否 | false | 【Android】客户端没有找到对应的taskid,是否把对应appid下所有的通知都撤回 |
def RevokeTemplateDemo():
template = RevokeTemplate()
template.appId = APPID
template.appKey = APPKEY
# 指定需要撤回消息对应的taskId
template.oldTaskId = TASKID
# 当客户端没有找到对应的taskid,是否把对应appid下所有的通知都撤回
template.force = False
return template
iOS推送需要在代码中通过相应模板的setAPNInfo接口设置相应的APNs通知参数。
透传模板传输的数据最大为是3KB,APNs传输数据最大支持3KB。
template.setApnInfo(payload)
setAPNInfo具体参数含义详见苹果APNs文档。
注:setAutoBadge、setAlertMsg、setSound(不设置无声)必须至少设置一项
类名 | 成员和方法名 | 说明 |
---|---|---|
APNPayload | autoBadge | 设置角标,还可以实现显示数字的自动增减,如"+1"、"-1"、"1"等 |
contentAvailable | 推送直接带有透传数据 | |
alertMsg | 通知消息体 | |
sound_str | 通知铃声文件名 | |
sound_d | sound支持Dictionary类型,可以控制“警告性质的推送”,仅支持iOS 12.0以上版本 | |
category | 在客户端通知栏触发特定的action和button显示 | |
customMsg | 增加自定义的数据,Key-Value形式 | |
multiMedia | 添加一个多媒体资源,当前最多传入3个资源 | |
voicePlayType | 设置语音播报类型,int类型,0.不可用 1.播放body 2.播放自定义文本 | |
voicePlayMessage | 设置语音播报内容,String类型,非必须参数,用户自定义播放内容,仅在voicePlayMessage=2时生效 | |
threadId | ios的远程通知通过该属性对通知进行分组,仅支持iOS 12.0以上版本 | |
apnsCollapseId | 使用相同的apnsCollapseId可以覆盖之前的消息 |
类名 | 方法名 | 说明 |
---|---|---|
Sound | critical | 临界警报标志。设置为1以启用临界警报 |
name | 声音文件名 | |
volume | 临界警报声音的音量。将此设置为0(无声)和1(全音量)之间的值 |
类名 | 方法名 | 说明 |
---|---|---|
SimpleAlertMsg | alertMsg | 通知文本消息字符串 |
DictionaryAlertMsg | body | 通知文本消息字符串 |
actionLocKey | (用于多语言支持)指定执行按钮所使用的Localizable.strings | |
locKey | (用于多语言支持)指定Localizable.strings文件中相应的key | |
locArgs | 如果loc-key中使用的是占位符,则在loc-args中指定各参数 | |
launchImage | 指定启动界面图片名 | |
title | 通知标题 | |
titleLocKey | (用于多语言支持)对于标题指定执行按钮所使用的Localizable.strings,仅支持iOS8.2以上版本 | |
titleLocArgs | 对于标题,如果loc-key中使用的是占位符,则在loc-args中指定各参数,仅支持iOS8.2以上版本 | |
summaryArg | 合并分组时简介信息,仅支持iOS12.0以上版本 | |
summaryArgCount | 合并分组时单条消息中包含数字,仅支持iOS12.0以上版本 | |
subtitle | 设置子标题,仅支持iOS8.2以上版本 | |
subtitleLocKey | 设置当前本地化文件中的子标题字符串的关键字,仅支持iOS8.2以上版本 | |
subtitleLocArgs | 设置当前本地化子标题内容中需要置换的变量参数 ,仅支持iOS8.2以上版本 |
类名 | 方法名 | 说明 |
---|---|---|
MultiMedia | resId | 设置资源id |
resUrl | 设置资源url | |
resType | 设置资源类别 MediaType.pic 图片 MediaType.audio 音频 MediaType.video 视频 |
|
setOnlyWifi(bool) | 设置是否在WIFI下才展示多媒体消息,如果设置true但未使用WIFI时会展示成普通通知 |
类名 | 方法名 | 说明 |
---|---|---|
VoIPPayload | setVoIPPayload | 设置VoIP内容,建议使用JSON格式 |
def TransmissionTemplateDemo():
template = TransmissionTemplate()
template.transmissionType = 2
template.appId = APPID
template.appKey = APPKEY
template.transmissionContent = '这是个透传'
# ios消息推送
payload = APNPayload()
payload.badge = 4
# apnpayload.sound_str = "com.gexin.ios.silence"
# ios 12.0 以上可以使用 Dictionary 类型的 sound
payload.sound_d = Sound_Dictionary()
payload.sound_d.name = "default"
payload.sound_d.volume = 1.0
payload.sound_d.critical = 1
payload.addCustomMsg("由客户自定义消息key", "由客户自定义消息value") # apnpayload.customMsg[key] = value
payload.contentAvailable = 1
payload.category = "$由客户端定义"
# 设置语音播报类型,int类型,0.不可用 1.播放body 2.播放自定义文本
payload.voicePlayType = 2
# 设置语音播报内容,String类型,非必须参数,用户自定义播放内容,仅在voicePlayType = 2时生效
# 注:当"定义类型"=2, "定义内容"为空时则忽略不播放
payload.voicePlayMessage = "定义内容"
# 添加多媒体资源
multidia1 = MultiMedia()
multidia1.resUrl = "资源文件地址"
multidia1.setResType(MediaType.pic)
multidia1.setOnlyWifi(True)
payload.multiMedia = [multidia1]
# APN简单推送
# alertMsg = SimpleAlertMsg()
# alertMsg.alertMsg = "hello"
# APN高级推送(字典模式)
alertMsg = DictionaryAlertMsg()
alertMsg.body = "body"
alertMsg.actionLocKey = "显示关闭和查看两个按钮的消息"
alertMsg.locKey = "loc-key1"
alertMsg.locArgs = ['loc-ary1']
alertMsg.launchImage = "调用已经在应用程序中绑定的图形文件名"
# IOS8.2以上版本支持
alertMsg.title = '通知标题'
alertMsg.titleLocArgs = ['自定义通知标题组']
alertMsg.titleLocKey = '自定义通知标题'
payload.alertMsg = alertMsg
# 需要使用iOS语音传输,请使用VoIPPayload代替APNPayload
# payload = VoIPPayload()
# jo = dict()
# jo['key1'] = "value1"
# payload.setVoIPPayload(json.dumps(jo))
template.setApnInfo(payload)
return template
template.style = Style0()
AbstractNotifyStyle是父类,Style0、Style6是其子类
公共成员和方法名 | 类型 | 必填 | 默认值 | 说明 |
---|---|---|---|---|
isRing | bool | 否 | TRUE | 收到通知是否响铃:true响铃,false不响铃。默认响铃。 |
isVibrate | bool | 否 | TRUE | 收到通知是否振动:true振动,false不振动。默认振动。 |
isClearable | bool | 否 | TRUE | 通知是否可清除: true可清除,false不可清除。默认可清除。 |
Style0 系统样式
成员和方法名 | 类型 | 必填 | 默认值 | 说明 |
---|---|---|---|---|
title | String | 是 | 通知标题 | |
text | String | 是 | 通知内容 | |
logo | String | 否 | push.png | 通知的图标名称,包含后缀名(需要在客户端开发时嵌入),如“icon.png” 小LOGO,默认push_small.png,需要提前内置到客户端 |
logoUrl | String | 否 | 通知图标URL地址,小米、华为有些机型不支持此参数 | |
channel | String | 否 | Default | 通知渠道id,唯一标识 |
channelName | String | 否 | Default | 通知渠道名称 |
channelLevel | int | 否 | 3 | 该字段代表通知渠道重要性,具体值有0、1、2、3、4; 设置之后不能修改;具体展示形式如下: 0:无声音,无震动,不显示。(不推荐) 1:无声音,无震动,锁屏不显示,通知栏中被折叠显示,导航栏无logo。 2:无声音,无震动,锁屏和通知栏中都显示,通知不唤醒屏幕。 3:有声音,有震动,锁屏和通知栏中都显示,通知唤醒屏幕。(推荐) 4:有声音,有震动,亮屏下通知悬浮展示,锁屏通知以默认形式展示且唤醒屏幕。(推荐) |
Style6 展开式通知样式,BigStyle1/BigStyle2 两种方式选一种
成员和方法名 | 类型 | 必填 | 默认值 | 说明 |
---|---|---|---|---|
title | String | 是 | 通知标题 | |
text | String | 是 | 通知内容 | |
logo | String | 否 | push.png | 通知的图标名称,包含后缀名(需要在客户端开发时嵌入),如“icon.png” 小LOGO,默认push_small.png,需要提前内置到客户端 |
logoUrl | String | 否 | 通知图标URL地址,小米、华为有些机型不支持此参数 | |
bigStyle | String | 否 | 通知展示方式,支持1,2两种 | |
bigImageUrl | String | 否 | 通知展示大图样式,参数是大图的URL地址,BigStyle1需要设置这个成员 | |
bigText | String | 否 | 通知展示文本+长文本样式,参数是长文本,BigStyle2需要设置这个成员 | |
channel | String | 否 | Default | 通知渠道id,唯一标识 |
channelName | String | 否 | Default | 通知渠道名称 |
channelLevel | int | 否 | 3 | 该字段代表通知渠道重要性,具体值有0、1、2、3、4; 设置之后不能修改;具体展示形式如下: 0:无声音,无震动,不显示。(不推荐) 1:无声音,无震动,锁屏不显示,通知栏中被折叠显示,导航栏无logo。 2:无声音,无震动,锁屏和通知栏中都显示,通知不唤醒屏幕。 3:有声音,有震动,锁屏和通知栏中都显示,通知唤醒屏幕。(推荐) 4:有声音,有震动,亮屏下通知悬浮展示,锁屏通知以默认形式展示且唤醒屏幕。(推荐) |
以上文档对您是否有帮助?