推送模板

推送模板

本章介绍了PYTHON API的推送模板实例,推送模板结合推送方式即可完成整套推送方案。

1. 点击通知打开应用模板

1.1 描述

在通知栏显示一条含图标、标题等的通知,用户点击后激活您的应用。(激活后,打开应用的首页,如果只要求点击通知唤起应用,不要求到哪个指定页面就可以用此功能。

1.2 应用场景

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

1.3 对应接口(Notification Template)

接口定义

在通知栏显示一条含图标、标题等的通知,用户点击后激活您的应用

参数说明

成员和方法名 类型 长度 必填 默认值 说明
appId String 设定接收的应用
appKey String 用于鉴定身份是否合法
setDuration String 收到消息的展示时间
transmissionContent String 2048中/英字符 透传内容,不支持转义字符
transmissionType int 4Byte 收到消息是否立即启动应用: 1为立即启动,2则广播等待客户端自启动
Style AbstractNotifyStyle - - 通知栏消息布局样式(Style0 系统样式 Style1 个推样式 Style4 背景图样式 Style6 展开式通知样式),setStyle是新方法,使用了该方法后原来的设置标题、文本等方法就不起效

AbstractNotifyStyle是父类,Style0、Style1、Style4、Style6是其子类

公共成员和方法名 类型 长度 必填 默认值 说明
isRing boolean TRUE 收到通知是否响铃:true响铃,false不响铃。默认响铃。
isVibrate boolean TRUE 收到通知是否振动:true振动,false不振动。默认振动。
isClearable boolean TRUE 通知是否可清除: true可清除,false不可清除。默认可清除。

Style0系统样式和Style1个推样式

成员和方法名 类型 长度 必填 默认值 说明
text String 40中/英字符 通知标题
title String 600中/英字符 通知内容
logo String 40中/英字符 通知的图标名称,包含后缀名(需要在客户端开发时嵌入),如“push.png”
logoUrl String 100中/英字符 通知图标URL地址

Style4背景图样式

成员和方法名 类型 长度 必填 默认值 说明
logo String 40中/英字符 通知的图标名称,包含后缀名(需要在客户端开发时嵌入),如“push.png”
banner_url String 100中/英字符 通过url方式指定动态banner图片作为通知背景图

Style6展开式通知样式,setBigStyle1/setBigStyle2/setBigStyle3 三种方式选一种

成员和方法名 类型 长度 必填 默认值 说明
title String 40中/英字符 通知标题
text String 600中/英字符 通知内容
logo String 40中/英字符 通知的图标名称,包含后缀名(需要在客户端开发时嵌入),如“push.png”
logoUrl String 100中/英字符 通知图标URL地址
bigStyle = "1" String 100中/英字符 通知展示大图样式,参数是大图的URL地址
bigStyle = "2" String 100中/英字符 通知展示文本+长文本样式,参数是长文本
bigStyle = "3" String 100中/英字符 通知展示大图+小图样式,参数是大图URL和小图URL

1.4 NotificationTemplate实例

# 通知透传模板动作内容
def NotificationTemplateDemo():
    template = NotificationTemplate()
    template.appId = APPID
    template.appKey = APPKEY
    # begin = "2015-03-04 17:40:22"
    # end = "2015-03-04 17:47:24"
    # template.setDuration(begin, end)
    style6 = Style6()
    style6.text = u"style6啊"
    style6.title = u"style6啊"
    style6.logo = u"push.png"
    style6.logoUrl = "http://s1.hao123img.com/res/images/search_logo/image.png"
    style6.bigImageUrl = "http://www.google.cn/landing/cnexp/google-search.png"
    style6.bigText = u"啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊"
    style6.bannerUrl = "http://s1.hao123img.com/res/images/search_logo/image.png"
    # bigstyle对应不同的数值,动作链的拼接方式不一样,1、2、3
    style6.bigStyle = "3"
    template.style = style6

    return template

2. 点击通知打开网页模板

2.1 模板说明

pushType 说明 描述
LinkTemplate 点击通知打开网页 在通知栏显示一条含图标、标题等的通知,用户点击可打开您指定的网页

2.2 模板参数说明

类名 成员和方法名 长度 必填 说明
LinkTemplate appId - 设定接收的应用
appKey - 用于鉴定身份是否合法
title 40中/英字符 通知标题
text 600中/英字符 通知内容
logo 40中/英字符 通知的图标名称,包含后缀名(需要在客户端开发时嵌入),如“push.png”
logoURL 100中/英字符 通知的图标url地址
isRising - 收到通知是否响铃:true响铃,false不响铃。默认响铃。
isVibrate - 收到通知是否振动:true振动,false不振动。默认振动。
isClearable - 通知是否可清除:true可清除,false不可清除。默认可清除。
url 200中/英字符 点击通知后打开的网页地址
setDuration - 消息展示时间
style - 通知栏消息布局样式(Style0 系统样式 Style1 个推样式 Style4 背景图样式 Style6 展开式通知样式)使用了该方法后原来的设置标题、文本等方法就不起效,见详情

LinkTemplate代码实例

def LinkTemplateDemo():
    template = LinkTemplate()
    template.appId = APPID
    template.appKey = APPKEY
    # begin = "2015-03-04 17:40:22";
    # end = "2015-03-04 17:47:24";
    # template.setDuration(begin, end)
    #详细通知栏消息布局样式
    style6 = Style6()
    style6.text = u"style6啊"
    style6.title = u"style6啊"
    style6.logo = u"push.png"
    style6.logoUrl = "http://s1.hao123img.com/res/images/search_logo/image.png"
    style6.bigImageUrl = "http://www.google.cn/landing/cnexp/google-search.png"
    style6.bigText = u"啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊"
    style6.bannerUrl = "http://s1.hao123img.com/res/images/search_logo/image.png"
    # bigstyle对应不同的数值,动作链的拼接方式不一样,1、2、3
    style6.bigStyle = "3"
    template.style = style6

    return template

3. 点击通知栏弹框下载模板

3.1 模板说明

pushType 说明 描述
NotyPopLoadTemplate 通知栏弹框下载模版 在通知栏显示一条含图标、标题等的通知,用户点击后弹出框,用户可以选择直接下载应用或者取消下载应用。(iOS不支持该模板)

3.2 模板参数说明

类名 成员和方法名 长度 必填 说明
NotyPopLoadTemplate notyIcon 40中/英字符 通知栏图标
notyTitle 40中/英字符 通知栏标题
notyContent 600中/英字符 通知栏内容
isClearable 通知栏是否可以清除(默认是)
isRing 是否响铃(默认是)
isVibrate 收到通知是否振动:true振动,false不振动。默认振动。
popTitle 40中/英字符 弹出框标题
popContent 600中/英字符 弹出框内容
popImage 200中/英字符 弹出框图标
popButton1 4中/英字符 弹出框左边按钮名称
popButton2 4中/英字符 弹出框右边按钮名称
loadIcon 40中/英字符 下载图标(本地的图标要加上 file:// 网络图标直接填写url地址)
loadTitle 40中/英字符 下载标题
loadUrl 200中/英字符 下载地址
isAutoInstall 是否自动安装(默认否)
isActive 安装完成后是否自动启动应用程序(默认否)
android 40中/英字符 包名,比如:com.sina.weibo
symbia 40中/英字符 UID,比如:0x27000000
ios 40中/英字符 URL Schema,用于唤醒对应的iOS应用
setDuration - 消息展示时间
style - 通知栏消息布局样式(Style0 系统样式 Style1 个推样式 Style4 背景图样式 Style6 展开式通知样式)使用了该方法后原来的设置标题、文本等方法就不起效,见详情

3.3 NotyPopLoadTemplate代码实例

def NotyPopLoadTemplateDemo():
    template = NotyPopLoadTemplate()
    template.appId = APPID
    template.appKey = APPKEY
    style0 = Style0()
    style0.title = "style0"
    style0.text = "style0"
    style0.logo = "push.png"
    style0.logoUrl = "http://s1.hao123img.com/res/images/search_logo/image.png"
    style0.isClearable = True
    style0.isRing = True
    style0.isVibrate = True

    template.notyIcon = "icon.png"
    template.logoUrl = ""
    template.notyTitle = u"通知弹框下载功能标题"
    template.notyContent= u"通知弹框下载功能内容"
    template.isRing = True
    template.isVibrate = True
    template.isClearable = True
    template.popTitle = u"弹框标题"
    template.popContent = u"弹框内容"
    template.popImage = ""
    template.popButton1 = u"下载"
    template.popButton2 = u"取消"
    template.loadIcon = "file://icon.png"
    template.loadTitle = u"下载内容"
    template.loadUrl = "http://gdown.baidu.com/data/wisegame/c95836e06c224f51/weixinxinqing_5.apk"
    template.isAutoInstall = True
    template.isActive = False
    # begin = "2015-03-04 17:40:22";
    # end = "2015-03-04 17:47:24";
    # template.setDuration(begin, end)
    return template

4. 透传消息模板

4.1 模板说明

pushType 说明 描述
TransmissionTemplate 透传(payload) 数据经SDK传给您的客户端,由您写代码决定如何处理展现给用户

4.2 模板参数说明

类名 成员和方法名 长度 必填 说明
TransmissionTemplate appId 设定接收的应用
appKey 用于鉴定身份是否合法
transmissionContent 2048中/英字符 透传内容,不支持转义字符
transmissionType 4byte 收到消息是否立即启动应用,1为立即启动,2则广播等待客户端自启动
setDuration - 消息展示时间
setAPNInfo iOS推送使用该字段

4.3 TransmissionTemplate代码实例

def TransmissionTemplateDemo():
    template = TransmissionTemplate()
    template.transmissionType = 1
    template.appId = APPID
    template.appKey = APPKEY
    template.transmissionContent = '请填入透传内容'
    alertMsg = SimpleAlertMsg()
    alertMsg.alertMsg = ""
    apn = APNPayload();
    apn.alertMsg = alertMsg
    apn.badge = 2
    apn.sound = ""
    apn.addCustomMsg("payload", "payload")
    #apn.contentAvailable=1
    #apn.category="ACTIONABLE"
    # begin = "2015-03-04 17:40:22";
    # end = "2015-03-04 17:47:24";
    # template.setDuration(begin, end)
    #template.setApnInfo(apn)
    /*iOS 推送需要对该字段进行设置具体参数详见iOS模板说明(PYTHON)*/
    return template

4.4 iOS推送说明

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

4.4.1 对应接口

def setApnInfo(payload):

4.4.2 参数描述

setAPNInfo具体参数含义详见苹果APNs文档:
https://developer.apple.com/library/content/documentation/NetworkingInternet/Conceptual/RemoteNotificationsPG/PayloadKeyReference.html

4.4.3 参数说明

类名 方法名 说明
APNPayload setBadge 应用icon上显示的数字
setContentAvailable 推送直接带有透传数据
setSound 通知铃声文件名
setCategory 在客户端通知栏触发特定的action和button显示
addCustomMsg 增加自定义的数据
voicePlayType 设置语音播报类型,int类型,0.不可用 1.播放body 2.播放自定义文本
voicePlayMessage 设置语音播报内容,String类型,非必须参数,用户自定义播放内容,仅在voicePlayMessage=2时生效
类名 方法名 说明
APNPayload.SimpleAlertMsg SimpleAlertMsg 通知文本消息字符串
APNPayload.DictionaryAlertMsg setBody 通知文本消息字符串
setActionLocKey (用于多语言支持)指定执行按钮所使用的Localizable.strings
setLocKey (用于多语言支持)指定Localizable.strings文件中相应的key
addLocArg 如果loc-key中使用的占位符,则在loc-args中指定各参数
setLaunchImage 指定启动界面图片名
setTitle 通知标题
setTitleLocKey (用于多语言支持)对于标题指定执行按钮所使用的Localizable.strings,仅支持iOS8.2以上版本
addTitleLocArg 对于标题, 如果loc-key中使用的占位符,则在loc-args中指定各参数,仅支持iOS8.2以上版本
  • VoIP推送
类名 方法名 说明
VoIPPayload setVoIPPayload 设置VoIP内容,建议使用JSON格式

4.4.4 代码示例:

def TransmissionTemplateDemo():
    template = TransmissionTemplate()
    template.transmissionType = 1
    template.appId = APPID
    template.appKey = APPKEY
    template.transmissionContent = '请填入透传内容'
    template = TransmissionTemplate()
    #设置APNs信息
    apnpayload = APNPayload()
    apnpayload.badge = 4
    apnpayload.sound = "test1.wav"
    apnpayload.contentAvailable = 1
    apnpayload.category = "ACTIONABLE"
    #设置语音播报类型,int类型,0.不可用 1.播放body 2.播放自定义文本
    apnpayload.voicePlayType = 2
    #设置语音播报内容,String类型,非必须参数,用户自定义播放内容,仅在voicePlayMessage=2时生效
    #注:当"定义类型"=2, "定义内容"为空时则忽略不播放
    apnpayload.voicePlayMessage = "支付宝到账一千万元整"

    #简单类型如下设置
    alertMsg = SimpleAlertMsg()
    alertMsg.alertMsg = "alertMsg";
    #字典类型如下设置
    #alertMsg = DictionaryAlertMsg()
    #alertMsg.body = 'body'
    #alertMsg.actionLocKey = 'actionLockey'
    #alertMsg.locKey = 'lockey'
    #alertMsg.locArgs=['loc-args']
    #alertMsg.launchImage = 'launchImage'
    # iOS8.2以上版本支持
    #alertMsg.title = 'Title'
    #alertMsg.titleLocArgs = ['TitleLocArg']
    #alertMsg.titleLocKey = 'TitleLocKey'

    #可以设置字典类型AlertMsg和简单类型AlertMsg其中之一
    apnpayload.alertMsg=alertMsg

    #需要使用IOS语音推送,请使用VoIPPayload代替APNPayload
    # voIPPayload = VoIPPayload()
    # voIPPayload.setVoIPPayload("啦啦啦啦啦啦")
    # template.setApnInfo(voIPPayload)
    template.setApnInfo(apnpayload)

    return template
通知
2018.10.09 Android SDK 4.3.2.0

新增通知覆盖、撤回 适配Android 9.0

......
2018.09.27 PYTHON SDK 4.1.0.0

添加python新加接口功能文档说明

......
2018.09.27 PHP SDK 4.1.0.0

修改新鉴权方式 支持iOS语音播报 iOS透传消息模版支持副标题

......
2018.09.06 JAVA SDK 4.1.0.0

修改新鉴权方式 支持iOS语音播报 支持消息撤回和覆盖

......
2018.08.30 Android SDK 2.12.5.0

新增通知覆盖、撤回功能 兼容Android9.0

......

文档中心搜索