此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:有声音,有震动,亮屏下通知悬浮展示,锁屏通知以默认形式展示且唤醒屏幕。(推荐)  | 
以上文档对您是否有帮助?