推送模板
此SDK已停止维护,请开发者对接 RestApi V2
本章介绍了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 系统样式 Style6 展开式通知样式),setStyle是新方法,使用了该方法后原来的设置标题、文本等方法就不起效 |
AbstractNotifyStyle是父类,Style0、Style6是其子类
公共成员和方法名 |
类型 |
长度 |
必填 |
默认值 |
说明 |
isRing |
boolean |
— |
否 |
TRUE |
收到通知是否响铃:true响铃,false不响铃。默认响铃。 |
isVibrate |
boolean |
— |
否 |
TRUE |
收到通知是否振动:true振动,false不振动。默认振动。 |
isClearable |
boolean |
— |
否 |
TRUE |
通知是否可清除: true可清除,false不可清除。默认可清除。 |
Style0系统样式
成员和方法名 |
类型 |
长度 |
必填 |
默认值 |
说明 |
text |
String |
40中/英字符 |
是 |
|
通知标题 |
title |
String |
600中/英字符 |
是 |
|
通知内容 |
logo |
String |
40中/英字符 |
是 |
|
通知的图标名称,包含后缀名(需要在客户端开发时嵌入),如“push.png” |
logoUrl |
String |
100中/英字符 |
否 |
|
通知图标URL地址 |
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 系统样式 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 系统样式 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
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")
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以上版本 |
类名 |
方法名 |
说明 |
VoIPPayload |
setVoIPPayload |
设置VoIP内容,建议使用JSON格式 |
4.4.4 代码示例:
def TransmissionTemplateDemo():
template = TransmissionTemplate()
template.transmissionType = 1
template.appId = APPID
template.appKey = APPKEY
template.transmissionContent = '请填入透传内容'
template = TransmissionTemplate()
apnpayload = APNPayload()
apnpayload.badge = 4
apnpayload.sound = "test1.wav"
apnpayload.contentAvailable = 1
apnpayload.category = "ACTIONABLE"
apnpayload.addCustomMsg("payload", "payload")
apnpayload.voicePlayType = 2
apnpayload.voicePlayMessage = "支付宝到账一千万元整"
alertMsg = SimpleAlertMsg()
alertMsg.alertMsg = "alertMsg";
apnpayload.alertMsg=alertMsg
template.setApnInfo(apnpayload)
return template