API 接口文档

API 接口文档

1. 接口类说明

本文档所有接口所涉及的相关类及说明如下:

接口 说明
PushManager SDK 功能接口类,用于调用个推相关功能接口
Tag 标签接口类,用于给用户打上标签(如可以用于精准推送)
GTIntentService 消息处理中心(用户需继承实现)

2. 获取 PushManager

类名 com.igexin.sdk.PushManager
接口 public static PushManager getInstance()

说明:

用于获取单例 PushManager 对象,可以进行推送控制、设置标签、设置别名、设置静默时间等,所有个推提供的接口均是通过该实例调用

返回:

返回 PushManager 单例对象

3. 初始化SDK

类名 com.igexin.sdk.PushManager
接口 public void preInit(Context context)

说明:

初始化SDK,读取配置参数,此时推送服务未启动,cid 并未生成,推送功能未启动。

参数:

context:应用的 ApplicationContext

4. 注册 CID

类名 com.igexin.sdk.PushManager
接口 public void initialize(Context context)

说明:

注册消息推送唯一 cid ,推送服务启动,接口调用后个推服务后台运行,联网成功后,通过用户 IntentService 回调接口返回 cid 信息。

参数:

context:应用的 ApplicationContext

5. 设置调试接口

类名 com.igexin.sdk.PushManager
接口 public void setDebugLogger(Context context, IUserLoggerInterface loggerInterface)

说明

  • 该接口用于输出集成时候的日志信息。
  • 请在调试的时候使用该接口,切勿发布到线上版本。
  • 该接口跟初始化接口的调用不存在先后关系,建议紧邻着初始化接口调用。

参数:

  • context:应用的 Context
  • loggerInterface:日志回调接口

示例

com.igexin.sdk.PushManager.getInstance().setDebugLogger(this, new IUserLoggerInterface() {
    @Override
    public void log(String s) {
        Log.i("PUSH_LOG",s);
    }
});

6. 开启推送

类名 com.igexin.sdk.PushManager
接口 public void turnOnPush(Context context)

说明:

打开 Push 推送,默认是开启状态,可以使用 turnOffPush 接口关闭推送

参数:

context:应用的 Context

7. 关闭推送

类名 com.igexin.sdk.PushManager
接口 public void turnOffPush(Context context)

说明:

关闭 Push 推送,关闭后则无法收到推送消息,若调用了该接口关闭了推送,则只能调用 turnOnPush 才能正常推送

参数:

context:应用的 Context

8. 设置静默时间

类名 com.igexin.sdk.PushManager
接口 public boolean setSilentTime(Context context,int beginHour,int duration)

说明:

设置静默时间,静默期间内 SDK 断开连接,将不再接收消息

参数:

  • context:应用的 Context
  • beginHour:开始时间,设置范围在 0-23 小时之间,单位 h
  • Duration:持续时间,设置范围在 0-23 小时之间。持续时间为 0 则取消静默,单位 h

返回:

true:设置成功;false:设置失败

示例:

//设置 beginHour 为 15,Duration 为 10 小时,则在 15:00-次日 1:00 这 10 个小时内 SDK 将不会联网。
int beginHour = 15;
int durationHour = 10;
boolean result = PushManager.getInstance().setSilentTime(context, beginHour, durationHour);

9. 获取缓存的 CID

类名 com.igexin.sdk.PushManager
接口 public String getClientid(Context context)

说明:

获取当前用户缓存的 cid(长时间未登录或 AppId 发生变化造成的 cid 变化以14. 获取 CID接口中的 cid 为准)

参数:

context:应用的 Context

返回:

当前用户的 cid,如果未初始化成功,返回 null

10. 获取 SDK 服务状态

类名 com.igexin.sdk.PushManager
接口 public boolean isPushTurnedOn(Context context)

说明:

获取当前 SDK 的服务状态

参数:

context:应用的 Context

返回:

true:当前推送已打开;false:当前推送已关闭

11. 获取 SDK 版本号

类名 com.igexin.sdk.PushManager
接口 public String getVersion(Context context)

说明:

获取当前 SDK 版本号

参数:

context:应用的 Context

返回:

当前 SDK 版本号字符串

12. 设置角标

类名 com.igexin.sdk.PushManager
接口 public boolean setBadgeNum(Context context, int badgeNum)

说明:

  • 设置设备上的应用角标;
  • 仅支持华为、oppo、vivo;
  • 其中oppo需要oppo官方设置白名单;
  • 其中小米,无需要调用接口。打开权限,通知到达自动显示角标。

参数:

  • context:应用的 Context
  • badgeNum:角标数量

返回:

true:设置成功;fasle设置失败

13. 检查集成结果

类名 com.igexin.sdk.PushManager
接口 public void checkManifest(Context context)

说明:

用于检查个推集成结果,此方法需要被try catch(Exception e)

参数:

  • context:应用的 Context

返回:

此方法无直接返回值。若出现集成问题会在logcat中打印关键字为“GetuiPushException”的相关报错信息

14. 推送进程启动

类名 com.igexin.sdk.GTIntentService
接口 public void onReceiveServicePid(Context context, int pid)

说明:

个推进程启动成功回调该函数。

参数:

  • context:应用的 Context
  • pid:Push 进程 ID

15. 获取 CID

类名 com.igexin.sdk.GTIntentService
接口 public void onReceiveClientId(Context context, String clientid)

说明:

个推初始化成功回调该函数并返回 cid。

参数:

  • context:应用的 Context
  • clientid:个推唯一 ID,用于标识当前应用

16. 接收透传消息

类名 com.igexin.sdk.GTIntentService
接口 public void onReceiveMessageData(Context context, GTTransmitMessage pushMessage)

说明:

接收到透传消息后回调该函数。

参数:

  • context:应用的 Context
  • pushMessage:透传消息封装类。

示例

@Override
public void onReceiveMessageData(Context context, GTTransmitMessage msg) {
    Log.d(TAG, "onReceiveMessageData -> " +
            "appid = " + msg.getAppid() +
            "\ntaskid = " + msg.getTaskId() +
            "\nmessageid = " + msg.getMessageId() +
            "\npkg = " + msg.getPkgName() +
            "\ncid = " + msg.getClientId()+
            "\nplayload = "+ new String(msg.getPayload()));
}

17. 监听在线状态

类名 com.igexin.sdk.GTIntentService
接口 public void onReceiveOnlineState(Context context, boolean online)

说明:

cid 在线状态变化时回调该函数

参数:

  • context:应用的 Context
  • online:当前 cid 是否在线,true 代表在线,false 代表离线,若由于网络原因离线,个推 SDK 内部会自动重连

18. 命令回执

类名 com.igexin.sdk.GTIntentService
接口 public void onReceiveCommandResult(Context context, GTCmdMessage cmdMessage)

说明:

调用设置标签、绑定别名、解绑别名、自定义回执操作的结果返回

参数:

  • context:应用的 Context
  • cmdMessage:通过cmdMessage.getAction()获取相应的状态值,具体值见代码示例

示例

@Override
public void onReceiveCommandResult(Context context, GTCmdMessage cmdMessage) {
    Log.d(TAG, "onReceiveCommandResult -> " + cmdMessage);

    int action = cmdMessage.getAction();

    /* action 结果值说明
       10009:设置标签的结果回执
       10010:绑定别名的结果回执
       10011:解绑别名的结果回执
       10012: 查询标签的结果回执
       10006:自定义回执的结果回执 */

    if (action == PushConsts.SET_TAG_RESULT) {
        setTagResult((SetTagCmdMessage) cmdMessage);
    } else if (action == PushConsts.BIND_ALIAS_RESULT) {
        bindAliasResult((BindAliasCmdMessage) cmdMessage);
    } else if (action == PushConsts.UNBIND_ALIAS_RESULT) {
        unbindAliasResult((UnBindAliasCmdMessage) cmdMessage);
    } else if ((action == PushConsts.THIRDPART_FEEDBACK)) {
        feedbackResult((FeedbackCmdMessage) cmdMessage);
    }else if(action == PushConsts.QUERY_TAG_RESULT){
         QueryTagCmdMessage tagCmdMessage = (QueryTagCmdMessage) cmdMessage;
    }
}

19. 通知到达

类名 com.igexin.sdk.GTIntentService
接口 public void onNotificationMessageArrived(Context context, GTNotificationMessage notificationMessage)

说明:

通知到达时回调该接口(仅支持个推 SDK 通道下发的通知)

参数:

  • context:应用的 Context
  • notificationMessage:通知回调结果的消息封装类。

示例:

@Override
public void onNotificationMessageArrived(Context context, GTNotificationMessage message) {
    Log.d(TAG, "onNotificationMessageArrived -> "
            + "appid = " + message.getAppid()
            + "\ntaskid = " + message.getTaskId()
            + "\nmessageid = " + message.getMessageId()
            + "\npkg = " + message.getPkgName()
            + "\ncid = " + message.getClientId()
            + "\ncontent = " + message.getContent()
            + "\ntitle = " + message.getTitle()
            + "\nurl = " + message.getUrl() 
            + "\nintentUri = " + message.getIntentUri() 
            + "\npayload = " + message.getPayload());
}

20. 通知点击

类名 com.igexin.sdk.GTIntentService
接口 public void onNotificationMessageClicked(Context context, GTNotificationMessage notificationMessage)

说明:

通知点击回调接口(仅支持个推 SDK 通道下发的通知)

参数:

  • context:应用的 Context
  • notificationMessage:通知回调结果的消息封装类。

示例:

@Override
public void onNotificationMessageClicked(Context context, GTNotificationMessage message) {
    Log.d(TAG, "onNotificationMessageClicked -> "
            + "appid = " + message.getAppid()
            + "\ntaskid = " + message.getTaskId()
            + "\nmessageid = " + message.getMessageId()
            + "\npkg = " + message.getPkgName()
            + "\ncid = " + message.getClientId()
            + "\ncontent = " + message.getContent()
            + "\ntitle = "+message.getTitle()
            + "\nurl = " + message.getUrl() 
            + "\nintentUri = " + message.getIntentUri() 
            + "\npayload = " + message.getPayload());
}

21. 获取厂商 Token

类名 com.igexin.sdk.GTIntentService
接口 public void onReceiveDeviceToken(Context context, String deviceToken)

说明:

厂商 Token 回调 (该接口为非必须实现接口)

参数:

  • context:应用的 Context
  • deviceToken:厂商回调的 token 内容。

注意:返回的 deviceToken 会携带个推拼接的“前缀”,用于区分各厂商。

前缀:HW_(华为)、XM_(小米)、MZ_(魅族)、OP_(oppo)、VV_(vivo)、HO_(荣耀)、FCM_(fcm)
例如获取到的 deviceToken 值为:HW_xxxx,则实际的厂商token值为 xxxx

22. 检测用户设备是否开启通知权限

类名 com.igexin.sdk.PushManager
接口 public boolean areNotificationsEnabled(Context context)

说明:

检测用户设备是否开启通知权限

参数:

  • context:应用的 Context

返回:

返回true,表示用户设备正常开启通知权限,推送通知在设备上可以正常到达、展示;返回false,表示用户设备未开启通知权限

23. 开启通知权限

类名 com.igexin.sdk.PushManager
接口 public void openNotification(Context context)

说明:

调用方法,将跳转到系统开启通知功能页面,引导用户开启通知权限

参数:

  • context:应用的 Context

返回:

24. 设置通知图片

类名 com.igexin.sdk.PushManager
接口 public boolean setNotificationIcon(Context context, String smallIconName, String largeIconName)

说明:

初始化SDK后,调用接口设置通知icon,图片名称参数不要带文件格式,例如push_small.png,则调用接口使用"push_small";

参数:

  • smallIconName :通知的logo
  • largeIconName :通知右侧的大图

返回:

true 成功;false:失败

25. 主动查询 CID 是否在线

类名 com.igexin.sdk.PushManager
接口 public boolean queryPushOnLine(Context context)

说明:

初始化SDK后,调用该函数,可以查询cid是否在线。

参数:

  • context:应用的 Context

返回:

true 成功;false:失败。

  • 该返回值仅仅表示函数调用是否成功
  • cid是否在线,需要重写GTIntentService.onReceiveOnlineState回调函数,由该回调函数的参数告知cid是否在线。
  • 每次成功调用queryPushOnLine函数,均会触发GTIntentService.onReceiveOnlineState回调函数

26. 自定义厂商Token

类名 com.igexin.sdk.PushManager
接口 public boolean setDeviceToken(Context context, String token)

说明:

设置自定义厂商Token,开发者自行获取厂商token后汇报给个推服务。
需要在AndroidManifest.xml中预先配置GETUI_CUSTOM_TOKEN,默认不支持。
支持版本3.2.17.0及以上。

参数:

  • context:应用的 Context
  • token: 厂商token,格式为“前缀_xxxx”

前缀:HW_(华为)、XM_(小米)、MZ_(魅族)、OP_(oppo)、VV_(vivo)、HO_(荣耀)、FCM_(fcm)
例如获取到 华为的deviceToken 值为:xxxx,则实际的传入的token值为 HW_xxxx

返回:

true 成功;false:失败。

  • 该返回值仅仅表示函数调用是否成功

示例:

需要在AndroidManifest.xml中预先配置GETUI_CUSTOM_TOKEN,默认不支持。
//AndroidManifest.xml
<meta-data
    android:name="GETUI_CUSTOM_TOKEN"
    android:value="*" />
// *:允许自定义token。 
// 空字符串:不允许自定义token。(默认)

27. 应用内弹框展示

类名 com.igexin.sdk.GTIntentService
接口 public void onPopupMessageShow(Context context, GTPopupMessage popupMessage)

说明:

应用内弹框展示时触发

参数:

  • context:应用的 Context
  • popupMessage:应用内弹框相关属性

示例:

@Override
public void onPopupMessageShow(Context context, GTPopupMessage popupMessage) {
    Log.d(TAG, "onPopupMessageShow -> "
            + "eventProperties = " +  popupMessage.getEventProperties()
            + "\action = " + popupMessage.getAction()
            + "\elementType = " + popupMessage.getElementType()
            );
}

28. 应用内弹框点击

类名 com.igexin.sdk.GTIntentService
接口 public void onPopupMessageClicked(Context context, GTPopupMessage popupMessage)

说明:

应用内弹框被点击时触发

参数:

  • context:应用的 Context
  • popupMessage:应用内弹框相关属性

示例:

@Override
public void onPopupMessageClicked(Context context, GTPopupMessage popupMessage) {
    Log.d(TAG, "onPopupMessageShow -> "
            + "eventProperties = " +  popupMessage.getEventProperties()
            + "\action = " + popupMessage.getAction()
            + "\elementType = " + popupMessage.getElementType()
            );
}
开发者中心 SDK 下载

文档中心搜索

技术
咨询

微信扫一扫

随时联系技术支持

在线
咨询