推送开发API

1.推送初始化操作:

该接口是所有其他接口能正常使用的基础。在每次应用启动时,必须调用该接口才能保证推送的正常进行。 包含云更新SDK操作方法: 请在应用的第一个Activity类(启动的第一个类)的oncreate中添加下面代码; 或者在应用的application派生类的oncreate中添加下面一行代码:


      
1
2
3
4
5
//请一定确保参数都有值
//参数appKey为应用从ixintui申请的应用唯一标识符
//参数channel标识应用的分发渠道,用于统计推送信息,
BundleManager.getInstance().init(context, appKey, channel);
 

无云更新SDK操作方法


      
1
2
3
4
5
6
//请一定确保四个参数都有值
//参数appKey为应用从ixintui申请的应用唯一标识符
//参数channel标识应用的分发渠道,用于统计推送信息,
//参数appVersion标识应用版本信息,用于统计推送信息
PushSdkApi.register(this, appKey, channel, appVersion);
 

请注意, 初始化(注册)是个异步过程,其结果会被Receiver接收。 在初始化(注册)成功后, 应用会获取到一个token来唯一标识本设备。获取方法如下:


      
1
2
3
4
5
6
String extra = intent.getStringExtra(SdkConstants.ADDITION);
String cmd = intent.getStringExtra(SdkConstants.COMMAND);
    if (cmd.equals(SdkConstants.REGISTER)) {
        Log.d(TAG, "this is register command, token is:" + extra);
    }
 

这个函数无需重复多次调用,如果已经有了token就不需要再次调用了,否则会重复在Receiver中返回结果token。

2.增加标签接口

应用可以通过标签来标记特定的用户群体, 如“北京”用户,“男”用户, “商务”用户等。 Push系统根据伴随消息下发的标签来对特定人群进行消息发送。 在push系统中,标签是一个16位的整数,应用将标签值和具体含义相对应。 请注意,添加标签必须在成功初始化(注册)之后进行。 方法如下:


      
1
2
3
PushSdkApi.addTags(context, tags);
//tags: List<Short>类型
 

其结果会异步返回到Receiver,通过如下方式获取。 结果格式为json的整数数组,表示添加成功的tag列表。


      
1
2
String extra = intent.getStringExtra(SdkConstants.ADDITION);
 

注意,由于系统限制一个用户最多设置16个tag,超出部分会被丢弃。返回结果中只有成功添加的tag。

3.删除标签接口

和增加标签接口类似,本接口必须在成功注册之后才能调用。 结果会异步返回到Receiver,只标识成功失败。失败唯一原因是数组中的tag都不存在。


      
1
2
3
PushSdkApi.deleteTags(context, tags);
//参数:tags:List<Short>类型
 

4.列出标签接口

和添加标签接口类似,同样必须在成功注册之后才能调用


      
1
2
PushSdkApi.listTags(context);
 

异步结果会返回给Receiver,使用如下方式获取标签,其格式为json整数数组。


      
1
2
String extra = intent.getStringExtra(SdkConstants.ADDITION);
 

5.暂停push接口

暂停接收push消息。 必须在成功注册之后才能调用,调用方式如下。异步结果会返回给Receiver。


      
1
2
PushSdkApi.suspendPush(context);
 

6.恢复push接口

恢复本应用接收push,必须在成功注册之后才能调用,调用格式如下。 异步结果会返回给Receiver。


      
1
2
PushSdkApi.resumePush(context);
 

7.检查push是否暂停中

必须在成功注册之后才能调用。 异步结果会返回给Receiver, 通过如下方式获取。


      
1
2
3
4
PushSdkApi.isSuspended(context);
String extra = intent.getStringExtra(SdkConstants.ADDITION);
//返回值:“true”标识已经暂停,”false”标识push正在运行
 

8.打开或关闭基本信息统计


      
1
2
3
PushSdkApi.enableStat(context, isEnable);
//isEnable可以为true或false。
 

异步结果会返回给Receiver, 通过如下方式获取。


      
1
2
3
String extra = intent.getStringExtra(SdkConstants.ADDITION);
//返回值:"true"标识已经开启统计,"false"标识基本信息统计关闭
 

9.绑定别名


      
1
2
PushSdkApi.bindAlias(context, alias);
 

alias为String,请注意限制长度为40个字节,这里长度并不是字符数,而是字符转成字节表示后的字节数,比如一个英文字母的UTF-8只占用一个字节,但是一个中文字符要占用二到三个字节。

异步结果会返回给Receiver, 通过如下方式获取。请注意多次重复调用可能只会一次返回结果,绑定成功的是最后调用的值


      
1
2
3
4
5
// 返回值,0为成功,否则失败
int code = intent.getIntExtra(SdkConstants.CODE, 0);
// 绑定成功的别名
String aliasBound = intent.getStringExtra(SdkConstants.ADDITION);
 

10.解绑别名


      
1
2
PushSdkApi.unbindAlias(context, alias);
 

alias为String,请注意限制长度为40个字节,这里长度并不是字符数,而是字符转成字节表示后的字节数,比如一个英文字母的UTF-8只占用一个字节,但是一个中文字符要占用二到三个字节。

异步结果会返回给Receiver, 通过如下方式获取。请注意多次重复调用可能只会一次返回结果,解绑成功的是最后调用的值


      
1
2
3
4
5
// 返回值,0为成功,否则失败
int code = intent.getIntExtra(SdkConstants.CODE, 0);
// 解绑成功的别名
String aliasUnbound = intent.getStringExtra(SdkConstants.ADDITION);
 

11.检查集成SDK结果


      
1
2
PushSdkApi.getSdkIntegrationInfo(context);
 

本接口应在注册之前调用,来检查SDK是否被正确完整的集成。同步结果将直接返回给调用者。


      
1
2
3
4
// 返回值
String result = PushSdkApi.getSdkIntegrationInfo(context);
// result字符串将集成结果展示出来,可以根据提示的信息做相应的检查和修改。
 

12.红点角标提示相关接口

a.(必须)在应用的BaseActivity中重写onResume()调用此接口,传入context,此方法初始化角标数据。


      
1
2
3
4
5
6
    @Override
    protected void onResume() {
        super.onResume();
        PushSdkApi.onResume(this);
    }
 

b.(必须)在应用的BaseActivity中重写onPause()调用此接口,传入context,此方法更新角标数据。


      
1
2
3
4
5
6
    @Override
    protected void onPause() {
        super.onPause();
        PushSdkApi.onPause(this);
    }
 

c.设置角标管理者:用于设置是否由App来管理角标的显示与清除。


      
1
2
void setBadgeModel(Context context, PushModel badgeModel);
 
badgeModel值 参数含义
PUSH_MODEL
(默认)
Push服务管理角标:(必调接口)
1.用户点击通知栏消息或者打开App会清除角标。
2.要求开发者在应用的BaseActivity中重写onResume()调用onResume()接口,传入context。
3.setBadgeModel(context, true)时,不建议开发者调用管理角标接口。
APP_MODEL App管理角标:
1.角标的显示可以由App自己管理,收到推送时触发。
2.角标的清除也由App自己管理,用户行为不影响角标值。
3.与Push服务管理的区别在于不做清除角标操作,由开发者在App内手动调用PushSDK相关接口设置与清除角标。

d.设置角标:用于设置角标的显示值。


      
1
2
3
//badgeNum:显示的角标值。
void setBadgeNum(Context context, int badgeNum);
 
badgeNum参数范围 含义
>0 设置App的角标为badgeNum
=0 清除当前应用的角标
<0 无效参数

e.改变角标值:用于设置角标的增减。


      
1
2
3
void incrBadge(Context context, int incrNum);
//incrNum:显示在现角标的基础上加incrNum后的值。
 
increaseNum参数范围 含义
!=0 在现有角标值上加increaseNum,显示计算后得到的badgeNum
=0 无效参数

f.清除角标:清除指定App的角标。


      
1
2
void clearBadge(Context context);
 

g.是否开启小米系统桌面角标管理:您可以自主选择由小米系统桌面或PushSDK管理角标。


      
1
2
void openMIBadge(Context context, boolean isOpen);
 
isOpen值 含义(前提为当前小米系统桌面)
true PushSDK管理角标,可自定义角标显示值,但是通知栏会显示一条提醒通知
false MIUI Launcher管理角标,小米系统桌面自带角标显示功能,角标值不可自定义,每发送一条通知消息角标值+1

13.注意事项:

14.使用unity集成SDK直接编译apk注意事项

需要注意的操作如下: