geTui
来自于:官方立即使用
init setListener removeListener bindAlias unbindAlias setTags clearNotification setPushTime setSilenceTime stopPush resumePush isPushStopped setBadge getClientId 监听通知被点击事件
概述
geTui模块封装了个推推送平台的SDK,使用此模块可实现接收推送通知和透传消息功能。
此模块已下线,请使用pushGeTui模块。
注意:使用了个推或者其他非APICloud提供的push服务,请登录官网,去掉push模块,同时在推送设置界面将官方的推送关闭,避免因同时使用多个推送服务而带来设备资源的更多消耗,如耗电量增加等。
使用个推推送基本流程说明:
1.在个推推送网站( http://www.getui.com )注册帐号,并创建应用,获取appId等。
2.在config.xml中配置geTui feature,填写appId等参数
3.前端调用geTui模块方法,初始化和监听推送消息。
使用此模块之前需先配置config文件的Feature,方法如下
名称:geTui
参数:appId, appKey, appSecret
描述:配置个推推送应用信息
<feature name="geTui">
<param name="appId" value="DhvkGt3gkm6zd4fQNj41X3" />
<param name="appKey" value="PywHvFIZBw70mlEp5L8k62" />
<param name="appSecret" value="b6c39aE3wjA5QyUV0qjY8A" />
</feature>
字段描述:
1. appId:通过个推网站获得
2. appKey:通过个推网站获得
3. appSecret:通过个推网站获得
init
初始化推送服务,只Android有效,iOS上会自动初始化
init(callback(ret, err))
callback(ret, err)
ret:
- 类型:JSON 对象
内部字段:
{
status:1 //操作成功状态值,1-成功,0-失败
}
示例代码
var geTui = api.require('geTui');
geTui.init(function(ret) {
if (ret && ret.status){
//success
}
});
可用性
Android系统
可提供的1.0.0及更高版本
setListener
设置消息监听
setListener(callback(ret, err))
callback(ret, err)
ret:
- 类型:JSON 对象
内部字段:
{
id:'' //消息id,字符串类型
payload:'' //消息内容,字符串类型
offLine:false //是否是离线消息,布尔类型
}
示例代码
var geTui = api.require('geTui');
geTui.setListener(
function(ret) {
var id = ret.id;
var payload = ret.payload;
var offLine = ret.offLine;
}
);
可用性
iOS系统,Android系统
可提供的1.0.0及更高版本
removeListener
移除消息监听
removeListener()
示例代码
var geTui = api.require('geTui');
geTui.removeListener();
可用性
iOS系统,Android系统
可提供的1.0.0及更高版本
bindAlias
绑定用户别名。服务端可以指定别名进行消息推送
bindAlias({params}, callback(ret, err))
params
alias:
- 类型:字符串
- 默认值:无
- 描述:别名
callback(ret, err)
ret:
- 类型:JSON 对象
内部字段:
{
status:1 //是否成功
}
示例代码
var geTui = api.require('geTui');
var param = {alias:'myalias'};
geTui.bindAlias(param,function(ret) {
if (ret.status) {
}
});
可用性
iOS系统,Android系统
可提供的1.0.0及更高版本
unbindAlias
解绑用户别名
unbindAlias({params}, callback(ret, err))
params
alias:
- 类型:字符串
- 默认值:无
- 描述:别名
callback(ret, err)
ret:
- 类型:JSON 对象
内部字段:
{
status:1 //是否成功
}
示例代码
var geTui = api.require('geTui');
var param = {alias:'myalias'};
geTui.unbindAlias(param,function(ret) {
if (ret.status) {
}
});
可用性
iOS系统,Android系统
可提供的1.0.0及更高版本
setTags
设置标签。服务端可以指定标签进行消息推送
setTags({params}, callback(ret, err))
params
tags:
- 类型:字符串数组
- 默认值:无
- 描述:标签列表
callback(ret, err)
ret:
- 类型:JSON 对象
内部字段:
{
status:1 //是否成功
}
示例代码
var geTui = api.require('geTui');
var param = {tags:['mytag']};
geTui.setTags(param,function(ret) {
if (ret.status) {
}
});
可用性
iOS系统,Android系统
可提供的1.0.0及更高版本
clearNotification
清除个推推送发送到状态栏的通知。
clearNotification({params}, callback(ret, err))
params
id:
- 类型:数字
- 默认值:无
- 描述:待清除的通知id(等同于消息ID),为-1时清除所有,iOS只支持清除所有,不能为空
callback(ret, err)
ret:
- 类型:JSON 对象
内部字段:
{
status:1 //操作成功状态值,1-成功,0-失败
}
示例代码
var geTui = api.require('geTui');
var param = {id:-1};
geTui.clearNotification(param,function(ret) {
if(ret && ret.status){
//success
}
});
可用性
iOS系统,Android系统
可提供的1.0.0及更高版本
setPushTime
设置允许推送时间,只Android有效
setPushTime(params,callback(ret, err))
params
days:
- 类型:数字数组
- 默认值:无
- 描述:允许推送的日期,0表示星期天,1表示星期一,以此类推,(7天制,数组里面的每项范围为0到6),不能为空
startHour:
- 类型:数字
- 默认值:无
- 描述:允许推送的开始时间(24小时制:startHour的范围为0到23),不能为空
endHour:
- 类型:数字
- 默认值:无
- 描述:允许推送的结束时间(24小时制:endHour的范围为0到23),不能为空
callback(ret, err)
ret:
- 类型:JSON 对象
内部字段:
{
status:1 //操作成功状态值,1-成功,0-失败
}
示例代码
var geTui = api.require('geTui');
var params = {};
params.days = [1,2];
params.startHour = 8;
params.endHour = 20;
geTui.setPushTime(params, function(ret) {
if(ret && ret.status){
//success
}
});
补充说明
默认情况下用户在任何时间都允许推送。即任何时候有推送下来,客户端都会收到,并展示。开发者可以调用此 API 来设置允许推送的时间。如果不在该时间段内收到消息,当前的行为是:推送到的通知会被扔掉。
可用性
Android系统
可提供的1.0.0及更高版本
setSilenceTime
设置通知静默时间,只Android有效
setSilenceTime(params,callback(ret, err))
params
startHour:
- 类型:数字
- 默认值:无
- 描述:静音时段的开始小时(24小时制,范围:0~23),不能为空
startMinute:
- 类型:数字
- 默认值:无
- 描述:静音时段的开始分钟(范围:0~59),不能为空
endHour:
- 类型:数字
- 默认值:无
- 描述:静音时段的结束小时(24小时制,范围:0~23),不能为空
endMinute:
- 类型:数字
- 默认值:无
- 描述:静音时段的结束分钟(范围:0~59),不能为空
callback(ret, err)
ret:
- 类型:JSON 对象
内部字段:
{
status:1 //操作成功状态值,1-成功,0-失败
}
示例代码
var geTui = api.require('geTui');
var params = {};
params.startHour = 8;
params.startMinute = 0;
params.endHour = 20;
params.endMinute = 59;
geTui.setPushTime(params, function(ret) {
if(ret && ret.status){
//success
}
});
补充说明
默认情况下用户在收到推送通知时,客户端可能会有震动,响铃等提示。但用户在睡觉、开会等时间点希望为 “免打扰” 模式,也是静音时段的概念。开发者可以调用此 API 来设置静音时段。如果在该时间段内收到消息,则:不会有铃声和震动。
可用性
Android系统
可提供的1.0.0及更高版本
stopPush
停止Push推送。
stopPush(callback(ret, err))
callback(ret, err)
ret:
- 类型:JSON 对象
内部字段:
{
status:1 //操作成功状态值,1-成功,0-失败
}
示例代码
var geTui = api.require('geTui');
geTui.stopPush(function(ret) {
if(ret && ret.status){
//success
}
});
可用性
iOS系统、Android系统
可提供的1.0.0及更高版本
resumePush
恢复Push推送。
注意:需要额外在config.xml里面配置 <preference name="backgroundMode" value="remote-notification"/>
,否则在iOS10中无法恢复推送。
resumePush(callback(ret, err))
callback(ret, err)
ret:
- 类型:JSON 对象
内部字段:
{
status:1 //操作成功状态值,1-成功,0-失败
}
示例代码
var geTui = api.require('geTui');
geTui.resumePush(function(ret) {
if(ret && ret.status){
//success
}
});
可用性
iOS系统、Android系统
可提供的1.0.0及更高版本
isPushStopped
查询当前推送服务是否停止。
isPushStopped(callback(ret, err))
callback(ret, err)
ret:
- 类型:JSON 对象
内部字段:
{
isStopped:1 //推送服务是否停止状态,1-停止,0-未停止
}
示例代码
var geTui = api.require('geTui');
geTui.isPushStopped(function(ret) {
if(ret && ret.isStopped){
}
});
可用性
iOS系统、Android系统
可提供的1.0.0及更高版本
setBadge
设置应用图标右上角数字,并同步到服务器,只iOS有效。
setBadge({params})
params
badge:
- 类型:数字
- 默认值:无
- 描述:为0时清除应用图标数字,大于0时设置应用图标数字
示例代码
var geTui = api.require('geTui');
geTui.setBadge({
badge:0
});
可用性
iOS系统
可提供的1.0.0及更高版本
getClientId
在第一次成功注册到个推服务器时,个推服务器会给客户端返回一个唯一的该设备的标识CID。应用程序可以把此CID保存于自己的应用服务器上,然后就可以根据 CID来向设备推送消息或者通知
getClientId(callback(ret, err))
callback(ret, err)
ret:
- 类型:JSON 对象
内部字段:
{
id:'' //CID
}
示例代码
var geTui = api.require('geTui');
geTui.getClientId(function(ret) {
var id = ret.id;
});
可用性
iOS系统,Android系统
可提供的1.0.0及更高版本
监听通知被点击事件
在Android平台,发送通知、消息等类型推送时,模块会往设备状态栏上发送通知,当通知被点击后,APICloud会将本次推送的内容通过事件监听回调的方式交给开发者。具体使用如下:
api.addEventListener({
name: 'appintent'
}, function(ret, err) {
if (ret && ret.appParam.geTui) {
var geTui = ret.appParam.geTui;
var payload = geTui.payload;
}
});
在iOS平台,发送通知、消息时,若应用在前台运行,则推送内容可以通过setListener方法监听到,若应用在后台或关闭时,系统会往设备通知栏发送通知,当通知被点击后,APICloud会将本次推送的内容通过事件监听回调的方式交给开发者。具体使用如下:
api.addEventListener({
name: 'noticeclicked'
}, function(ret, err) {
if (ret && ret.value) {
var geTui = ret.value;
var payload = geTui.payload;
}
});