geTui

来自于:官方立即使用

概述

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;
    }
});