推送模板

推送模板

本章介绍了node.js的推送模板,推送模板结合推送方式即可完成整套推送方案。

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

1.1 描述

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

1.2 应用场景

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

1.3 参数说明(NotificationTemplate)

成员和方法名 类型 长度 必填 默认值 说明
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)

1.4 代码实例

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: '测试离线'
    });
    // 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 = "";
//    alertMsg.titleLocKey = "";
//    alertMsg.titleLocArgs = Array("");
//
////    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");

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

2.1 描述

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

2.2 应用场景

场景1:推送广促销活动,用户点击通知栏信息,直接打开到指定的促销活动页面,推送直接到达指定页面,免去了中间过程的用户流失。

2.3 接口参数(LinkTemplate)

成员和方法名 类型 长度 必填 默认值 说明
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)

2.4 代码实例

var LinkTemplate = require('./getui/template/LinkTemplate');
    var template = new LinkTemplate({
        appId: APPID,
        appKey: APPKEY,
        title: '个推',
        text: '个推最新版点击下载',
        logoUrl: 'http://wwww.igetui.com/logo.png',
        isRing: true,
        isVibrate: true,
        isClearable: false,
        url: 'http://www.igetui.com'
    });
    // 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 = "";
//    alertMsg.titleLocKey = "";
//    alertMsg.titleLocArgs = Array("");
//
////    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");

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

3.1 描述

消息以弹框的形式展现,点击弹框内容可启动下载任务。(iOS不使用该模板)

3.2 应用场景

场景1:应用有更新,点击推送的更新通知,弹出下载弹窗,点击可启动应用更新下载。

3.3 接口描述

成员和方法名 类型 长度 必填 默认值 说明
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)

3.4 代码实例

var NotyPopLoadTemplate = require('./getui/template/NotyPopLoadTemplate');
    var template = new NotyPopLoadTemplate({
        appId: APPID,
        appKey: APPKEY,
        notyTitle: '个推',
        notyContent: '个推最新版点击下载',
        notyIcon: 'http://wwww.igetui.com/logo.png',    // 通知栏logo
        isRing: false,
        isVibrate: false,
        isClearable: true,
        popTitle: '弹框标题',
        setPopContent: '弹框内容',
        popImage: '',
        popButton1: '下载',                             // 左键
        popButton2: '取消',                             // 右键
        loadIcon: 'http://www.photophoto.cn/m23/086/010/0860100017.jpg', // 弹框图片
        loadUrl: 'http://dizhensubao.igexin.com/dl/com.ceic.apk',
        loadTitle: '地震速报下载',
        autoInstall: false,
        actived: true
});
        //template.setDuration("2015-01-16 11:40:00", "2015-01-16 12:24:00");

4. 透传消息模板

4.1 描述

透传消息是指消息传递到客户端只有消息内容,展现形式由客户端自行定义。客户端可自定义通知的展现形式,也可自定义通知到达之后的动作,或者不做任何展现。

4.2 应用场景

场景1:自定义通知栏样式不想使用默认的通知栏样式,即可使用消息透传的形式,自定义通知栏展现形式,使发送的通知更醒目,更突出。

场景2:自定义通知到达之后的动作希望用户点击通知后启动应用直接到和通知相关的界面,免去中间跳转的流失。如用户预订更新的某本图书有更新,点击通知直接启动应用到对应图书的页面,免去用户打开应用后的查找,节省中间环节,提高转化。

场景3:仅传递信息,不做任何展示推送一串代码给应用,该代码仅此app可以解析。收到透传消息时,界面不作任何展示,用户无感知,应用收到命令后按代码执行操作。

4.3 接口参数

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

4.4 代码实例

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 = "";
//    alertMsg.titleLocKey = "";
//    alertMsg.titleLocArgs = Array("");
//
////    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");

4.4 iOS推送说明

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

4.4.1 参数描述

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

4.4.2 参数说明

类名 方法名 说明
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以上版本

4.4.3 代码实例

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;
}
通知
2017.12.18 iOS SDK 2.1.0.0

新增 SDK 离线状态返回。 优化 SDK 解决已知问题。

......
2017.08.17 Android SDK 2.11.1.0

增加 "绑定、解绑别名" 结果回调 修复 "设置标签" 在某些情况下失败问题 修复若干其他 bug【感谢快看小说的反馈及大力支持~】

......
2017.08.10 iOS SDK 2.0.0.0

新增支持一键解绑该别名下对应的所有用户。 优化 SDK 解决已知问题,以 Framework 形式提供 SDK 库。 扩展 SDK(GtExtensionSdk)新增资源释放接口,防止超时处理导致的问题。

......
2017.08.03 Android SDK 2.10.3.5

调整代码符合google审核规则 针对海外用户进行联网优化 bug修复

......
2017.07.13 PYTHON SDK 4.0.1.4

修改获取用户状态接口的返回值无法识别的问题

......

文档中心搜索