此SDK已停止维护,请开发者对接 RestApi V2
本章介绍了node.js的推送模板,推送模板结合推送方式即可完成整套推送方案。
在通知栏显示一条含图标、标题等的通知,用户点击后激活您的应用。(激活后,打开应用的首页,如果只要求点击通知唤起应用,不要求到哪个指定页面就可以用此功能。)
场景1:针对沉默用户,发送推送消息,点击消息栏的通知可直接激活启动应用,提升应用的转化率。
成员和方法名 | 类型 | 长度 | 必填 | 默认值 | 说明 |
---|---|---|---|---|---|
setAppId | String | — | 是 | - | 设定接收的应用 |
setAppkey | String | — | 是 | - | 用于鉴定身份是否合法 |
setTitle | String | 40中/英字符 | 是 | - | 通知标题 |
setText | String | 600中/英字符 | 是 | - | 通知内容 |
setLogo | String | 40中/英字符 | 是 | - | 通知的图标名称,包含后缀名(需要在客户端开发时嵌入),如“push.png” |
setLogoUrl | String | 100中/英字符 | 是 | - | 通知图标的url地址 |
setIsRing | boolean | — | 否 | True | 收到通知是否响铃:true响铃,false不响铃。默认响铃。 |
setIsVibrate | boolean | — | 否 | True | 收到通知是否振动:true振动,false不振动。默认振动。 |
setIsClearable | boolean | — | 否 | True | 通知是否可清除:true可清除,false不可清除。默认可清除。 |
transmissionContent | String | 2048中/英字符 | 是 | 透传内容,不支持转义字符 | |
setTransmissionType | number | 4Byte | 是 | - | 收到消息是否立即启动应用:1为立即启动,2则广播等待客户端自启 |
setDuration | String | - | 否 | - | 消息展示时间(格式yyyy-MM-dd HH:mm:ss) |
var NotificationTemplate = require('./getui/template/NotificationTemplate');
var template = new NotificationTemplate({
appId: APPID,
appKey: APPKEY,
title: '请填写通知标题',
text: '请填写通知内容',
logoUrl: 'http://wwww.igetui.com/logo.png',
isRing: true,
isVibrate: true,
isClearable: false,
transmissionType: 2,
transmissionContent: '测试离线'
});
在通知栏显示一条含图标、标题等的通知,用户点击可打开您指定的网页。
场景1:推送广促销活动,用户点击通知栏信息,直接打开到指定的促销活动页面,推送直接到达指定页面,免去了中间过程的用户流失。
成员和方法名 | 类型 | 长度 | 必填 | 默认值 | 说明 |
---|---|---|---|---|---|
setAppID | 是 | 设定接收的应用 | |||
setAppkey | String | — | 是 | 用于鉴定身份是否合法 | |
setTitle | String | 40中/英字符 | 是 | 通知标题 | |
setText | String | 600中/英字符 | 是 | 通知内容 | |
setLogo | String | 40中/英字符 | 否 | 通知的图标名称,包含后缀名(需要在客户端开发时嵌入),如“push.png” | |
setLogoUrl | String | 100中/英字符 | 否 | 通知的图标url地址 | |
setIsRing | boolean | — | 否 | TRUE | 收到通知是否响铃:true响铃,false不响铃。默认响铃。 |
setIsVibrate | boolean | — | 否 | TRUE | 收到通知是否振动:true振动,false不振动。默认振动。 |
setIsClearable | boolean | — | 否 | TRUE | 通知是否可清除:true可清除,false不可清除。默认可清除。 |
setUrl | String | 200中/英字符 | 是 | 点击通知后打开的网页地址 | |
setLogoUrl | String | — | 是 | 通知的网络图标地址 | |
setDuration | String | 否 | 收到消息的展示时间(格式yyyy-MM-dd HH:mm:ss) |
var LinkTemplate = require('./getui/template/LinkTemplate');
var template = new LinkTemplate({
appId: APPID,
appKey: APPKEY,
title: '请填写通知标题',
text: '请填写通知内容',
logoUrl: '请填写logo链接地址',
isRing: true,
isVibrate: true,
isClearable: false,
url: '请填写链接地址'
});
消息以弹框的形式展现,点击弹框内容可启动下载任务。(iOS不使用该模板)
场景1:应用有更新,点击推送的更新通知,弹出下载弹窗,点击可启动应用更新下载。
成员和方法名 | 类型 | 长度 | 必填 | 默认值 | 说明 |
---|---|---|---|---|---|
setAppId | String | — | 是 | 设定接收的应用 | |
setAppkey | String | — | 是 | 用于鉴定身份是否合法 | |
setNotyIcon | String | 40中/英字符 | 是 | 通知栏图标 | |
setNotyContent | String | 600中/英字符 | 是 | 通知栏内容 | |
setCleared | boolean | — | 否 | TRUE | 通知栏是否可以清除(默认是) |
setBelled | boolean | — | 否 | TRUE | 是否响铃(默认是) |
setVibrationed | boolean | — | 否 | TRUE | 是否震动(默认是) |
setPopTitle | String | 40中/英字符 | 是 | 弹出框标题 | |
setPopContent | String | 600中/英字符 | 是 | 弹出框内容 | |
setPopImage | String | 200中/英字符 | 是 | 弹出框图标 | |
setPopButton1 | String | 4中/英字符 | 是 | 弹出框左边按钮名称 | |
setPopButton2 | String | 4中/英字符 | 是 | 弹出框右边按钮名称 | |
setLoadIcon | String | 40中/英字符 | 是 | 下载图标(本地图标需要加上file:// 网络图标则直接填写url地址) | |
setLoadTitle | String | 40中/英字符 | 是 | 下载标题 | |
setLoadUrl | String | 200中/英字符 | 是 | 下载地址 | |
setAutoInstall | boolean | — | 否 | false | 是否自动安装 |
setActived | boolean | — | 否 | false | 安装完成后是否自动启动应用程序 |
setAndroidMark | String | 40中/英字符 | 否 | 设置安卓标识 | |
setSymbianMark | String | 40中/英字符 | 否 | 设置塞班标识 | |
setIphoneMark | String | 40中/英字符 | 否 | 设置苹果标识 | |
setDuration | String | 否 | 收到消息的展示时间(格式yyyy-MM-dd HH:mm:ss) |
var NotyPopLoadTemplate = require('./getui/template/NotyPopLoadTemplate');
var template = new NotyPopLoadTemplate({
appId: APPID,
appKey: APPKEY,
notyTitle: '请填写通知标题',
notyContent: '请填写通知内容',
notyIcon: '请填写通知栏logo链接地址', // 通知栏logo
isRing: false,
isVibrate: false,
isClearable: true,
popTitle: '弹框标题',
setPopContent: '弹框内容',
popImage: '',
popButton1: '下载', // 左键
popButton2: '取消', // 右键
loadIcon: '请填写弹框图片链接地址', // 弹框图片
loadUrl: '请填写下载链接地址',
loadTitle: '请填写下载标题',
autoInstall: false,
actived: true
});
//template.setDuration("2015-01-16 11:40:00", "2015-01-16 12:24:00");
透传消息是指消息传递到客户端只有消息内容,展现形式由客户端自行定义。客户端可自定义通知的展现形式,也可自定义通知到达之后的动作,或者不做任何展现。
场景1:自定义通知栏样式不想使用默认的通知栏样式,即可使用消息透传的形式,自定义通知栏展现形式,使发送的通知更醒目,更突出。
场景2:自定义通知到达之后的动作希望用户点击通知后启动应用直接到和通知相关的界面,免去中间跳转的流失。如用户预订更新的某本图书有更新,点击通知直接启动应用到对应图书的页面,免去用户打开应用后的查找,节省中间环节,提高转化。
场景3:仅传递信息,不做任何展示推送一串代码给应用,该代码仅此app可以解析。收到透传消息时,界面不作任何展示,用户无感知,应用收到命令后按代码执行操作。
类名 | 成员和方法名 | 长度 | 必填 | 说明 |
---|---|---|---|---|
TransmissionTemplate | setAppID | — | 是 | 设定接收的应用 |
setAppkey | — | 是 | 用于鉴定身份是否合法 | |
setTransmissionContent | 2048中/英字符 | 是 | 透传内容,不支持转义字符 | |
setTransmissionType | 4byte | 是 | 收到消息是否立即启动应用,1为立即启动,2则广播等待客户端自启动 | |
setAPNInfo | — | 否 | iOS推送使用该字段 |
var TransmissionTemplate = require('./getui/template/TransmissionTemplate');
var template = new TransmissionTemplate({
appId: APPID,
appKey: APPKEY,
transmissionType: 1,
transmissionContent: '请填写透传内容'
});
//iOS推送需要设置的setApnInfo字段
// var payload = new APNPayload();
// var alertMsg = new DictionaryAlertMsg();
// alertMsg.body = "";
// alertMsg.actionLocKey = "";
// alertMsg.locKey = "";
// alertMsg.locArgs = Array("");
// alertMsg.launchImage = "";
// //ios8.2以上版本支持
// alertMsg.title = "Title";
// alertMsg.titleLocKey = "TitleLocKey";
// alertMsg.titleLocArgs = Array("TitleLocArg");
//
//// payload.alertMsg=alertMsg;
// payload.badge=5;
//// payload.contentAvailable =1;
//// payload.category="";
//// payload.sound="";
//// payload.customMsg.payload1="payload";
// template.setApnInfo(payload);
// template.setDuration("2015-01-16 11:40:00", "2015-01-16 12:24:00");
iOS推送需要在代码中通过TransmissionTemplate的setAPNInfo接口设置相应的APNs通知参数。
透传模板传输的数据最大为是2KB,APNs传输数据最大支持2KB。
setApnInfo具体参数含义详见苹果APNs文档:
https://developer.apple.com/library/content/documentation/NetworkingInternet/Conceptual/RemoteNotificationsPG/PayloadKeyReference.html
类名 | 方法名 | 说明 |
---|---|---|
APNPayload | setBadge | 应用icon上显示的数字 |
setContentAvailable | 推送直接带有透传数据 | |
setAlertMsg | 通知消息体 | |
setSound | 通知铃声文件名 | |
setCategory | 在客户端通知栏触发特定的action和button显示 | |
addCustomMsg | 增加自定义的数据 |
类名 | 方法名 | 说明 |
---|---|---|
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以上版本 |
function getTemplate() {}
var template = new TransmissionTemplate();
template.setAppId(APPID);
template.setAppkey(APPKEY);
template.setTransmissionContent("请填写透传内容");
template.setTransmissionType(2);
var payload = new APNPayload();
payload.badge=5;
payload.contentAvailable =1;
payload.category="ACTIONABLE";
payload.sound="test1.wav";
payload.customMsg.payload1="payload";
//简单模式使用
var alertMsg = new SimpleAlertMsg();
alertMsg.alertMsg="AlertMsg";
payload.alertMsg = alertMsg;
//字典模式使用下者
//payload.alertMsg = getDictionaryAlertMsg();
template.setApnInfo(payload);
//template.setDuration("2015-01-16 11:40:00", "2015-01-16 12:24:00");
return template;
}
function getDictionaryAlertMsg() {
var alertMsg = new DictionaryAlertMsg();
alertMsg.body = " 请填写body";
alertMsg.actionLocKey = "ActionLockey";
alertMsg.locKey = "LocKey";
alertMsg.locArgs = "loc-args";
alertMsg.launchImage = "launch-image";
// iOS8.2以上版本支持
alertMsg.title = "Title";
alertMsg.titleLocKey = "TitleLocKey";
alertMsg.titleLocArgs = "TitleLocArg";
return alertMsg;
}
以上文档对您是否有帮助?