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,方法如下

  1. 名称:geTui
  2. 参数:appId, appKey, appSecret
  3. 描述:配置个推推送应用信息
  1. <feature name="geTui">
  2. <param name="appId" value="DhvkGt3gkm6zd4fQNj41X3" />
  3. <param name="appKey" value="PywHvFIZBw70mlEp5L8k62" />
  4. <param name="appSecret" value="b6c39aE3wjA5QyUV0qjY8A" />
  5. </feature>

字段描述:

  1. 1. appId:通过个推网站获得
  2. 2. appKey:通过个推网站获得
  3. 3. appSecret:通过个推网站获得

init

初始化推送服务,只Android有效,iOS上会自动初始化

init(callback(ret, err))

callback(ret, err)

ret:

  • 类型:JSON 对象

内部字段:

  1. {
  2. status:1 //操作成功状态值,1-成功,0-失败
  3. }

示例代码

  1. var geTui = api.require('geTui');
  2. geTui.init(function(ret) {
  3. if (ret && ret.status){
  4. //success
  5. }
  6. });

可用性

Android系统

可提供的1.0.0及更高版本

setListener

设置消息监听

setListener(callback(ret, err))

callback(ret, err)

ret:

  • 类型:JSON 对象

内部字段:

  1. {
  2. id:'' //消息id,字符串类型
  3. payload:'' //消息内容,字符串类型
  4. offLine:false //是否是离线消息,布尔类型
  5. }

示例代码

  1. var geTui = api.require('geTui');
  2. geTui.setListener(
  3. function(ret) {
  4. var id = ret.id;
  5. var payload = ret.payload;
  6. var offLine = ret.offLine;
  7. }
  8. );

可用性

iOS系统,Android系统

可提供的1.0.0及更高版本

removeListener

移除消息监听

removeListener()

示例代码

  1. var geTui = api.require('geTui');
  2. geTui.removeListener();

可用性

iOS系统,Android系统

可提供的1.0.0及更高版本

bindAlias

绑定用户别名。服务端可以指定别名进行消息推送

bindAlias({params}, callback(ret, err))

params

alias:

  • 类型:字符串
  • 默认值:无
  • 描述:别名

callback(ret, err)

ret:

  • 类型:JSON 对象

内部字段:

  1. {
  2. status:1 //是否成功
  3. }

示例代码

  1. var geTui = api.require('geTui');
  2. var param = {alias:'myalias'};
  3. geTui.bindAlias(param,function(ret) {
  4. if (ret.status) {
  5. }
  6. });

可用性

iOS系统,Android系统

可提供的1.0.0及更高版本

unbindAlias

解绑用户别名

unbindAlias({params}, callback(ret, err))

params

alias:

  • 类型:字符串
  • 默认值:无
  • 描述:别名

callback(ret, err)

ret:

  • 类型:JSON 对象

内部字段:

  1. {
  2. status:1 //是否成功
  3. }

示例代码

  1. var geTui = api.require('geTui');
  2. var param = {alias:'myalias'};
  3. geTui.unbindAlias(param,function(ret) {
  4. if (ret.status) {
  5. }
  6. });

可用性

iOS系统,Android系统

可提供的1.0.0及更高版本

setTags

设置标签。服务端可以指定标签进行消息推送

setTags({params}, callback(ret, err))

params

tags:

  • 类型:字符串数组
  • 默认值:无
  • 描述:标签列表

callback(ret, err)

ret:

  • 类型:JSON 对象

内部字段:

  1. {
  2. status:1 //是否成功
  3. }

示例代码

  1. var geTui = api.require('geTui');
  2. var param = {tags:['mytag']};
  3. geTui.setTags(param,function(ret) {
  4. if (ret.status) {
  5. }
  6. });

可用性

iOS系统,Android系统

可提供的1.0.0及更高版本

clearNotification

清除个推推送发送到状态栏的通知。

clearNotification({params}, callback(ret, err))

params

id:

  • 类型:数字
  • 默认值:无
  • 描述:待清除的通知id(等同于消息ID),为-1时清除所有,iOS只支持清除所有,不能为空

callback(ret, err)

ret:

  • 类型:JSON 对象

内部字段:

  1. {
  2. status:1 //操作成功状态值,1-成功,0-失败
  3. }

示例代码

  1. var geTui = api.require('geTui');
  2. var param = {id:-1};
  3. geTui.clearNotification(param,function(ret) {
  4. if(ret && ret.status){
  5. //success
  6. }
  7. });

可用性

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 对象

内部字段:

  1. {
  2. status:1 //操作成功状态值,1-成功,0-失败
  3. }

示例代码

  1. var geTui = api.require('geTui');
  2. var params = {};
  3. params.days = [1,2];
  4. params.startHour = 8;
  5. params.endHour = 20;
  6. geTui.setPushTime(params, function(ret) {
  7. if(ret && ret.status){
  8. //success
  9. }
  10. });

补充说明

默认情况下用户在任何时间都允许推送。即任何时候有推送下来,客户端都会收到,并展示。开发者可以调用此 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 对象

内部字段:

  1. {
  2. status:1 //操作成功状态值,1-成功,0-失败
  3. }

示例代码

  1. var geTui = api.require('geTui');
  2. var params = {};
  3. params.startHour = 8;
  4. params.startMinute = 0;
  5. params.endHour = 20;
  6. params.endMinute = 59;
  7. geTui.setPushTime(params, function(ret) {
  8. if(ret && ret.status){
  9. //success
  10. }
  11. });

补充说明

默认情况下用户在收到推送通知时,客户端可能会有震动,响铃等提示。但用户在睡觉、开会等时间点希望为 “免打扰” 模式,也是静音时段的概念。开发者可以调用此 API 来设置静音时段。如果在该时间段内收到消息,则:不会有铃声和震动。

可用性

Android系统

可提供的1.0.0及更高版本

stopPush

停止Push推送。

stopPush(callback(ret, err))

callback(ret, err)

ret:

  • 类型:JSON 对象

内部字段:

  1. {
  2. status:1 //操作成功状态值,1-成功,0-失败
  3. }

示例代码

  1. var geTui = api.require('geTui');
  2. geTui.stopPush(function(ret) {
  3. if(ret && ret.status){
  4. //success
  5. }
  6. });

可用性

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 对象

内部字段:

  1. {
  2. status:1 //操作成功状态值,1-成功,0-失败
  3. }

示例代码

  1. var geTui = api.require('geTui');
  2. geTui.resumePush(function(ret) {
  3. if(ret && ret.status){
  4. //success
  5. }
  6. });

可用性

iOS系统、Android系统

可提供的1.0.0及更高版本

isPushStopped

查询当前推送服务是否停止。

isPushStopped(callback(ret, err))

callback(ret, err)

ret:

  • 类型:JSON 对象

内部字段:

  1. {
  2. isStopped:1 //推送服务是否停止状态,1-停止,0-未停止
  3. }

示例代码

  1. var geTui = api.require('geTui');
  2. geTui.isPushStopped(function(ret) {
  3. if(ret && ret.isStopped){
  4. }
  5. });

可用性

iOS系统、Android系统

可提供的1.0.0及更高版本

setBadge

设置应用图标右上角数字,并同步到服务器,只iOS有效。

setBadge({params})

params

badge:

  • 类型:数字
  • 默认值:无
  • 描述:为0时清除应用图标数字,大于0时设置应用图标数字

示例代码

  1. var geTui = api.require('geTui');
  2. geTui.setBadge({
  3. badge:0
  4. });

可用性

iOS系统

可提供的1.0.0及更高版本

getClientId

在第一次成功注册到个推服务器时,个推服务器会给客户端返回一个唯一的该设备的标识CID。应用程序可以把此CID保存于自己的应用服务器上,然后就可以根据 CID来向设备推送消息或者通知

getClientId(callback(ret, err))

callback(ret, err)

ret:

  • 类型:JSON 对象

内部字段:

  1. {
  2. id:'' //CID
  3. }

示例代码

  1. var geTui = api.require('geTui');
  2. geTui.getClientId(function(ret) {
  3. var id = ret.id;
  4. });

可用性

iOS系统,Android系统

可提供的1.0.0及更高版本

监听通知被点击事件

在Android平台,发送通知、消息等类型推送时,模块会往设备状态栏上发送通知,当通知被点击后,APICloud会将本次推送的内容通过事件监听回调的方式交给开发者。具体使用如下:

  1. api.addEventListener({
  2. name: 'appintent'
  3. }, function(ret, err) {
  4. if (ret && ret.appParam.geTui) {
  5. var geTui = ret.appParam.geTui;
  6. var payload = geTui.payload;
  7. }
  8. });

在iOS平台,发送通知、消息时,若应用在前台运行,则推送内容可以通过setListener方法监听到,若应用在后台或关闭时,系统会往设备通知栏发送通知,当通知被点击后,APICloud会将本次推送的内容通过事件监听回调的方式交给开发者。具体使用如下:

  1. api.addEventListener({
  2. name: 'noticeclicked'
  3. }, function(ret, err) {
  4. if (ret && ret.value) {
  5. var geTui = ret.value;
  6. var payload = geTui.payload;
  7. }
  8. });