文章目录

  • 一、业务介绍
  • 1.1 产品简介
  • 1.2 名词解释
  • 1.3 消息推送流程
  • 二、应用创建
  • 三、客户端 SDK 集成
  • 3.1 Android
  • 3.2 iOS
  • 四、服务端推送
  • 4.1 服务端消息下发流程(必读)
  • 4.2 开发者中心后台
  • 4.3 推送代码
  • 五、参数说明


一、业务介绍

1.1 产品简介

个推是商用级的移动应用消息推送云服务供应商,客户端 SDK 支持 Android 和 iOS 两大平台,开发者集成 SDK 后,可以通过个推强大的 web 端及丰富的 API 开放接口,发送推送消息、统计分析推送效果。可有效提高 App 活跃度,增加用户留存率。

1.2 名词解释

Android实现手机信息弹出推送框 安卓app推送通知_ios


Android实现手机信息弹出推送框 安卓app推送通知_java_02

1.3 消息推送流程

Android实现手机信息弹出推送框 安卓app推送通知_Android实现手机信息弹出推送框_03

二、应用创建

如果您还没有个推 账号,可在 个推官网 ,完成账号注册。
如果您还没有个推 应用,可参考 开发者中心使用说明 中的【新增服务】,完成 消息推送 应用创建。

三、客户端 SDK 集成

若您需要在手机设备上使用个推消息推送服务,必须先完成客户端 SDK 集成。

3.1 Android

Android 个推主包:个推为 Android 应用提供的安全稳定的推送 SDK,集成主包后仅可以使用 “在线推送”。
Android 多厂商包:个推与主流安卓厂商合作融合了厂商推送 SDK,在个推开发者中心后台配置多厂商参数、并集成多厂商包后,可以同时使用 “离线推送”,能提高在安卓厂商设备上的消息到达率。
厂商消息报表补全:由于个推透传无展示数返回,华为、荣耀、OPPO 、vivo 无完整离线点击数报表返回,为了方便您在个推后台可以看到更加完整的推送数据统计,建议您在客户端埋点上报补全。

3.2 iOS

iOS 个推主包:个推为 iOS 应用提供的安全稳定的推送 SDK,集成主包后仅可以使用 “在线推送”。
iOS 推送证书:iOS 支持的推送通知功能,从苹果开发者官网导出证书并配置在个推开发者中心后台后,可以同时使用 “离线推送”,能提高在 iOS 设备上的消息到达率。

四、服务端推送

开发者可通过调用 服务端 RestAPI V2 或者登录 个推开发者中心 从页面下发消息。(若您想对单个 cid 用户进行推送,cid 必须先从客户端获取 )

4.1 服务端消息下发流程(必读)

当 CID 在线(即 app 在前台打开运行)时:

消息通过个推通道下发到客户端。

具体到服务端 RestAPI-V2 代码中,即 push_message 中的 notification(通知) 或 transmission(透传) 内容传递给客户端。

注意:iOS 系统不展示个推在线通知消息,所以推送用户是 iOS 时,push_message 内只能使用 transmission,iOS 客户端在线接收时自己做通知栏展示。

当 CID 离线(即 app 在后台、锁屏、进程关闭)时:

有开启对应厂商离线功能的,消息将通过个推侧请求对应厂商侧的服务端。

具体到服务端 RestAPI-V2 代码中,即 push_channel 中的通知内容传递给厂商,实际的消息是经由厂商服务器下发至客户端;对于没有开启对应厂商功能的,消息将存在个推的离线库中,等待 CID 在线,再通过个推通道下发到客户端。

注意:若服务端 push_channel 不传值,则无法接收离线消息。

4.2 开发者中心后台

登录 个推开发者中心,进入个推消息推送 dos 页面,可通过以下 2 种方式【创建推送】。

https://dev.getui.com/ 注册完成之后进入消息推送服务:

Android实现手机信息弹出推送框 安卓app推送通知_推送_04


Android实现手机信息弹出推送框 安卓app推送通知_java_05


新建一个测试app,建完之后在我的——>应用管理里面可以获得app的信息:

Android实现手机信息弹出推送框 安卓app推送通知_android_06


Android实现手机信息弹出推送框 安卓app推送通知_Android实现手机信息弹出推送框_07


这里面的信息等下在服务端调用的时候会用得到,有兴趣的小伙伴可以将服务端sdk的demo下载下来,很有研究价值哦。

4.3 推送代码

其他详细的以及客户端的只是我就不补充了,在个推官网文档中都有很好的解释及说明。
https://docs.getui.com/getui/server/rest_v2/service_sdk/

加入依赖:

<dependency>
    <groupId>com.getui.push</groupId>
     <artifactId>restful-sdk</artifactId>
     <version>1.0.0.1</version>
 </dependency>
GtApiConfiguration apiConfiguration = new GtApiConfiguration();
        //填写应用配置
        apiConfiguration.setAppId("-----");
        apiConfiguration.setAppKey("-----");
        apiConfiguration.setMasterSecret("-----");
        // 接口调用前缀,请查看文档: 接口调用规范 -> 接口前缀, 可不填写appId
        apiConfiguration.setDomain("https://restapi.getui.com/v2/");
        // 实例化ApiHelper对象,用于创建接口对象
        ApiHelper apiHelper = ApiHelper.build(apiConfiguration);
        // 创建对象,建议复用。目前有PushApi、StatisticApi、UserApi
        PushApi pushApi = apiHelper.creatApi(PushApi.class);

        //推送
        //根据cid进行单推
        PushDTO<Audience> pushDTO = new PushDTO<Audience>();
        // 设置推送参数
        pushDTO.setRequestId(System.currentTimeMillis() + "");
        PushMessage pushMessage = new PushMessage();
        pushDTO.setPushMessage(pushMessage);
        GTNotification notification = new GTNotification();
        pushMessage.setNotification(notification);
        notification.setTitle("测试标题" + new Date());
        notification.setBody("哈哈哈");
        notification.setClickType("url");
        notification.setUrl("https://www.getui.com");
        // 设置接收人信息
        Audience audience = new Audience();
        pushDTO.setAudience(audience);
        audience.addCid("77b5b288038f1a418d071-----------");

        // 进行cid单推
        ApiResult<Map<String, Map<String, String>>> apiResult = pushApi.pushToSingleByCid(pushDTO);
        if (apiResult.isSuccess()) {
            // success
            System.out.println(apiResult.getData());
        } else {
            // failed
            System.out.println("code:" + apiResult.getCode() + ", msg: " + apiResult.getMsg());
        }

测试结果:

Android实现手机信息弹出推送框 安卓app推送通知_Android实现手机信息弹出推送框_08

五、参数说明

https://docs.getui.com/getui/server/rest_v2/common_args/

Android实现手机信息弹出推送框 安卓app推送通知_java_09


Android实现手机信息弹出推送框 安卓app推送通知_android_10


Android实现手机信息弹出推送框 安卓app推送通知_ios_11


等等,可以下载官方sdk项目查看