推送模板

推送模板

本章介绍了PYTHON2 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)
    style0 = Style0()
    style0.title = "style0"
    style0.text = "style0"
    # style0.isClearable = False
    # style0.isRing = False
    # style0.isVibrate = False
    template.style = style0    
    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)
    #详细通知栏消息布局样式
    style0 = Style0()
    style0.title = "style0"
    style0.text = "style0"
    # style0.isClearable = False
    # style0.isRing = False
    # style0.isVibrate = False
    template.style = style0    
    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 badge 应用icon上显示的数字
contentAvailable 推送直接带有透传数据
sound 通知铃声文件名
category 在客户端通知栏触发特定的action和button显示
addCustomMsg 增加自定义的数据
voicePlayType 设置语音播报类型,int类型,0.不可用 1.播放body 2.播放自定义文本
voicePlayMessage 设置语音播报内容,String类型,非必须参数,用户自定义播放内容,仅在voicePlayMessage=2时生效
类名 方法名 说明
APNPayload.SimpleAlertMsg SimpleAlertMsg 通知文本消息字符串
APNPayload.DictionaryAlertMsg setBody 通知文本消息字符串
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以上版本
  • 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"
    apnpayload.addCustomMsg("payload", "payload")
    #设置语音播报类型,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
开发者中心 SDK 下载

文档中心搜索