jpushVip

概述

jpushVip模块封装了极光推送平台的SDK,使用此模块可实现接收推送通知和透传消息功能,同时集成极光厂商通道。

注意:使用了jpushVip或者其他非APICloud提供的push服务,如个推等,请登录官网,在推送设置界面将官方的推送关闭,并去掉push模块,避免因同时使用多个推送服务而带来设备资源的更多消耗,如耗电量增加等。iOS 端没有 vip,只有普通账号。

使用极光推送基本流程说明:

1.在极光推送网站( https://www.jpush.cn )注册帐号,并创建应用,获取APP_KEY

2.在config.xml中配置meta-data,填写JPUSH_APPKEY及JPUSH_CHANNEL参数

3.若是集成极光厂商通道,在config.xml中配置meta-data,小米平台,魅族平台,oppo平台,vivo平台,华为平台推送信息, 各平台申请方式如下

4.极光厂商通道配置信息地址(需联系客服进行开通)

5.前端调用jpushVip模块方法,初始化和监听推送消息。

使用此模块之前需先配置config文件 ,方法如下

    //极光配置
     <meta-data name="JPUSH_CHANNEL" value="渠道号"/>
     <meta-data name="JPUSH_APPKEY" value="通过极光推送网站获得appkey" />
    // <!-- 小米开始 -->
     <meta-data name="XIAOMI_APPKEY" value="MI-您的应用对应的小米的APPKEY" />
     <meta-data name="XIAOMI_APPID"  value="MI-您的应用对应的小米的APPID" />
     // <!--     小米结束 -->
    // <!--  meizu start -->
     <meta-data name="MEIZU_APPKEY" value="MZ-您的应用对应的魅族的APPKEY" />
     <meta-data name="MEIZU_APPID" value="MZ-您的应用对应的魅族的APPID" />
   //  <!--  meizhu end -->
   //  <!-- oppo start -->
     <meta-data name="OPPO_APPKEY" value="OP-您的应用对应的OPPO的APPKEY" />
     <meta-data name="OPPO_APPID" value="OP-您的应用对应的OPPO的APPID" />
     <meta-data name="OPPO_APPSECRET" value="OP-您的应用对应的OPPO的APPSECRET" />
    //  <!-- oppo end -->
    // <!--    vivo start -->
     <meta-data name="com.vivo.push.api_key" value="您的应用对应的VIVO的APPKEY" />
     <meta-data name="com.vivo.push.app_id" value="您的应用对应的VIVO的APPID" />
    // <!-- vivo end -->
    // <!--  huawei start -->
     <meta-data name="com.huawei.hms.client.appid"
         value="appid=您的应用对应华为的appID"></meta-data>
   //  <!--  huawei end  -->
    // <!--  iOS start -->
     <feature name="jpushVip">
        <param name="app_key" value="123456789" />
        <param name="channel" value="your channel" />
    </feature>
   //  <!--  iOS end  -->

init

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

init(callback(ret, err))

callback(ret, err)

ret:

  • 类型:JSON 对象
  • 内部字段:
{
    status:1       //操作成功状态值,1-成功,0-失败
}

示例代码

var jpushVip = api.require('jpushVip');

jpushVip.init(function(ret) {
    if (ret && ret.status){
        //success
    }
});

可用性

Android系统

可提供的1.0.0及更高版本

setListener

设置推送监听。

若未注册监听,应用在前台运行时,收到“消息”和“通知”都会自动弹出通知到手机状态栏。

注册该监听后,应用在前台运行时,“消息”类型的推送,将直接交给该监听的回调函数,由开发人员自行处理推送消息,不自动弹出通知到手机状态栏。“通知”类型的推送,iOS平台也将直接交给该监听的回调函数,Android则会自动弹出通知到状态栏。

注意:由于系统差异,Android平台应用在前台、后台、退出情况下都能收到“消息”和“通知”,iOS平台应用在前台时才能收到“消息”和“通知”,后台、退出情况下只能收到“通知”。

setListener(callback(ret, err))

callback(ret, err)

ret:

  • 类型:JSON 对象
  • 内部字段:
{
    id:''               //推送id,可能为空
    title:''             //推送标题,可能为空
    content:''          //推送内容
    extra:{}            //额外键值对,可能为空
}

示例代码

var jpushVip = api.require('jpushVip');
jpushVip.setListener(
    function(ret) {
         var id = ret.id;
         var title = ret.title;
         var content = ret.content;
         var extra = ret.extra;
    }
);

可用性

iOS系统,Android系统

可提供的 1.0.0 及更高版本

removeListener

移除消息监听

removeListener()

示例代码

var jpushVip = api.require('jpushVip');
jpushVip.removeListener();

可用性

iOS系统,Android系统

可提供的 1.0.0 及更高版本

bindAliasAndTags

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

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

params

alias:

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

tags:

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

callback(ret, err)

ret:

  • 类型:JSON 对象

内部字段:

{
    statusCode:0               //极光推送返回的状态码
}

示例代码

var jpushVip = api.require('jpushVip');
var param = {alias:'myalias',tags:['tag1','tag2']};
jpushVip.bindAliasAndTags(param,function(ret) {
        var statusCode = ret.statusCode;
});

可用性

iOS系统,Android系统

可提供的 1.0.0 及更高版本

onResume

通知极光推送SDK当前应用恢复到前台。

本API用于极光推送做“用户使用时长”,“活跃用户”,“用户打开次数”的统计,并上报到服务器,在Portal上展示给开发者。只Android有效

onResume()

示例代码

api.addEventListener({name:'resume'}, function(ret,err) {
    var jpushVip = api.require('jpushVip');
    jpushVip.onResume();
});

可用性

Android系统

可提供的 1.0.0 及更高版本

onPause

通知极光推送SDK当前应用退入到后台。

本API用于极光推送做“用户使用时长”,“活跃用户”,“用户打开次数”的统计,并上报到服务器,在Portal上展示给开发者。只Android有效

onPause()

示例代码

api.addEventListener({name:'pause'}, function(ret,err) {
    var jpushVip = api.require('jpushVip');
    jpushVip.onPause();
});

可用性

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 jpushVip = api.require('jpushVip');
var param = {id:-1};
jpushVip.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 jpushVip = api.require('jpushVip');
var params = {};
params.days = [1,2];
params.startHour = 8;
params.endHour = 20;
ajpush.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 jpushVip = api.require('jpushVip');
var params = {};
params.startHour = 8;
params.startMinute = 0;
params.endHour = 20;
params.endMinute = 59;
jpushVip.setPushTime(params, function(ret) {
    if(ret && ret.status){
        //success
    }
});

补充说明

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

可用性

Android系统

可提供的1.0.0及更高版本

stopPush

停止Push推送。

注意:iOS上面应该尽量不使用该方法,除非该版本和以后都不再使用远程推送功能。停止推送意味着从系统移除注册的远程通知功能,停止后再恢复在某些版本系统上面可能会有兼容问题。如果只是想实现不给某个用户推送,可以通过其它方式处理,如移除绑定的标签或别名,这样服务端就不会向该用户推送。

stopPush(callback(ret, err))

callback(ret, err)

ret:

  • 类型:JSON 对象
  • 内部字段:
{
    status:1               //操作成功状态值,1-成功,0-失败
}

示例代码

var jpushVip = api.require('jpushVip');
jpushVip.stopPush(function(ret) {
    if(ret && ret.status){
        //success
    }
});

可用性

iOS系统,Android系统

可提供的 1.0.0 及更高版本

resumePush

恢复Push推送。

注意:需要额外在config.xml里面配置 ,否则在iOS10中无法恢复推送。应避免停止推送,恢复推送在某些iOS版本系统上面可能会有兼容问题。

resumePush(callback(ret, err))

callback(ret, err)

ret:

  • 类型:JSON 对象
  • 内部字段:
{
    status:1               //操作成功状态值,1-成功,0-失败
}

示例代码

var jpushVip = api.require('jpushVip');
jpushVip.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 jpushVip = api.require('jpushVip');
jpushVip.isPushStopped(function(ret) {
    if(ret && ret.isStopped){

    }
});

可用性

iOS系统,Android系统

可提供的 1.0.0 及更高版本

setBadge

设置应用图标右上角数字,只iOS有效。

setBadge({params})

params

badge:

  • 类型:数字