1.客户端集成SDK

1.1初始化

JPushInterface.setDebugMode(true); // 设置开启日志,发布时请关闭日志
JPushInterface.init(this); // 初始化 JPush

1.2设置别名及标签

//设置别名(如果已设置,则无需重新设置),存储别名保存状态
SharedPreferences mySharedPreferences = getSharedPreferences("test",Activity.MODE_PRIVATE);
SharedPreferences.Editor editor = mySharedPreferences.edit();
boolean hasSetTagAlias = mySharedPreferences.getBoolean("hasSetTagAlias",false);
if(!hasSetTagAlias){
JPushUtil.setTag(LoginActivity.this,mDepartment.substring(0,12));
JPushUtil.setAlias(LoginActivity.this,userId.replaceAll("-","_"));
editor.putBoolean("hasSetTagAlias", true);
}

2.服务端集成SDK

2.1导入依赖jar包(Maven项目配置pom.xml文件即可)

2.2构造通送内容,发起推送

/**
* 别名推送
* @param alert 推送标题
* @param ticketId 点击通知进入的工单id
* @param alias 推送给指定的别名(以用户的id为别名)
*/
public static void pushByAlias(String alert,String ticketId,String alias){
JPushClient jpushClient = new JPushClient(MASTER_SECRET, APP_KEY, null, ClientConfig.getInstance());
// For push, all you need do is to build PushPayload object.
PushPayload payload = PushPayload.newBuilder().setPlatform(Platform.all())
.setAudience(Audience.all())
.setNotification(Notification.newBuilder()
.addPlatformNotification(AndroidNotification.newBuilder()
.setAlert(alert)
.addExtra("id", ticketId)
.build())
.build())
.setAudience(Audience.newBuilder()
.addAudienceTarget(AudienceTarget.alias(alias))
.build())
.build(); try {
PushResult result = jpushClient.sendPush(payload);
logger.info("Got result - " + result); } catch (APIConnectionException e) {
// Connection error, should retry later
logger.error("Connection error, should retry later", e); } catch (APIRequestException e) {
// Should review the error, and fix the request
logger.error("Should review the error, and fix the request", e);
logger.info("HTTP Status: " + e.getStatus());
logger.info("Error Code: " + e.getErrorCode());
logger.info("Error Message: " + e.getErrorMessage());
}
}
/**
* 标签推送
* @param alert 推送标题
* @param ticketId 点击通知进入的工单id
* @param alias 推送给指定的别名(以用户的id为别名)
*/
public static void pushByTag(String alert,String ticketId,String tag){
JPushClient jpushClient = new JPushClient(MASTER_SECRET, APP_KEY, null, ClientConfig.getInstance());
// For push, all you need do is to build PushPayload object.
PushPayload payload = PushPayload.newBuilder().setPlatform(Platform.all())
.setAudience(Audience.all())
.setNotification(Notification.newBuilder()
.addPlatformNotification(AndroidNotification.newBuilder()
.setAlert(alert)
.addExtra("id", ticketId)
.build())
.build())
.setAudience(Audience.newBuilder()
.addAudienceTarget(AudienceTarget.tag(tag))
.build())
.build(); try {
PushResult result = jpushClient.sendPush(payload);
logger.info("Got result - " + result); } catch (APIConnectionException e) {
// Connection error, should retry later
logger.error("Connection error, should retry later", e); } catch (APIRequestException e) {
// Should review the error, and fix the request
logger.error("Should review the error, and fix the request", e);
logger.info("HTTP Status: " + e.getStatus());
logger.info("Error Code: " + e.getErrorCode());
logger.info("Error Message: " + e.getErrorMessage());
}
}

App集成极光推送开发流程[关键步骤]的更多相关文章

  1. App集成极光推送步骤

    一.准备: 1.1注册极光开发者账号 1.2添加应用,获取AppKey 1.3下载提供的demo,demo中的AppKey已自动生成为你自己的AppKey 二.集成: 2.1第一种方式:自动集成 Mo ...

  2. C#—ASP.NET:集成极光推送(Push API v3)

    C#—ASP.NET:集成极光推送(Push API v3) 原文地址: https://blog.csdn.net/CXLLLK/article/details/86489994   1.极光推送官 ...

  3. 李洪强iOS之集成极光推送三iOS集成指南

    李洪强iOS之集成极光推送三iOS集成指南 SDK说明 适用版本 本文匹配的 SDK版本:r2.1.5 以后.查看最近更新了解最新的SDK更新情况.使用Xcode 6及以上版本可以使用新版Push S ...

  4. 李洪强iOS之集成极光推送二iOS 证书 设置指南

    李洪强iOS之集成极光推送二iOS 证书 设置指南 创建应用程序ID 登陆 iOS Dev Center 选择进入iOS Provisioning Portal. 在 iOS Provisioning ...

  5. 李洪强iOS之集成极光推送一iOS SDK概述

    李洪强iOS之集成极光推送一iOS SDK概述 JPush iOS 从上图可以看出,JPush iOS Push 包括 2 个部分,APNs 推送(代理),与 JPush 应用内消息. 红色部分是 A ...

  6. Android集成极光推送

    要说学习极光推送,个人感觉官方文档就非常好啦,但是没法,人太懒啦,为了下次能够快速的将极光推送集成到项目中,故结合之前开发的项目和官方文档记录下简单的Android集成极光推送,在这之前,先上一张简单 ...

  7. 1、Android Studio集成极光推送(Jpush) 报错 java.lang.UnsatisfiedLinkError: cn.jpush.android.service.PushProtoco

    Android studio 集成极光推送(Jpush) (华为手机)报错, E/JPush: [JPushGlobal] Get sdk version fail![获取sdk版本失败!] W/Sy ...

  8. Swift3集成极光推送

      现在很多程序都开始使用Swift开发了,但是第三方库大多数都是用OC写的,所以我们要使用Swift和OC混编.今天的内容主要讲Swift3.0集成极光推送. 1.准备工作   集成指南,极光上说的 ...

  9. ThinkPHP 3.2.x 集成极光推送指北

    3.2版本已经过了维护生命周期,官方已经不再维护,请及时更新至5.0版本 -- ThinkPHP 官方仓库 以上,如果有条件,请关闭这个页面,然后升级至 ThinkPHP 5,如果由于各种各样的原因无 ...

随机推荐

  1. java基础部分小项目

    贪吃蛇项目 import java.awt.Color; import java.awt.Graphics; import java.awt.Toolkit; import java.awt.even ...

  2. 什么是shell【TLCL】

    常用命令 date cal df——report file system disk space usage free——display amount of free and used memory i ...

  3. 也来谈幂等和CAS

    什么是幂等? 一个方法,不管你执行多少次,保证执行的结果总是相同的.这种方法或者服务就是幂等的. 什么是CAS? CAS是Compare And Set的缩写,顾名思义,就是先比较再设置,这种方式避免 ...

  4. 大话设计模式--观察者模式 Observer -- C++ 实现实例

    大话设计模式--1.观察者模式: 定义了一种一对多的依赖关系,让多个观察者对象同时监听某一个主题对象,这个主题对象在状态发生变化时,会通知所有的 观察者对象,使他们能够自动更新自己. 使用场合: 当一 ...

  5. Nginx HTTP反向代理基础配置

    #user nobody; worker_processes 1; #error_log logs/error.log; #error_log logs/error.log notice; #erro ...

  6. python基础-变量

    1.什么是变量? 其实就是给数据起个名字而已.在python中你不想要关心数据类型,因为在你赋值的时候它已经自己帮你识别了 2.创建变量时候会在内存中开辟一个空间,具体的细节不需要咱们关心,解释器会分 ...

  7. SpringBoot_05_热部署和debug

    一.pom.xml配置 增加以下pom.xml配置 <!--1.spring-boot插件--> <plugin> <groupId>org.springframe ...

  8. jQuery 参考手册 - 选择器

    jQuery 选择器 选择器 实例 选取 * $("*") 所有元素 #id $("#lastname") id="lastname" 的元 ...

  9. linux命令学习笔记(40):wc命令

    Linux系统中的wc(Word Count)命令的功能为统计指定文件中的字节数.字数.行数,并将统计结果显示输出. .命令格式: wc [选项]文件... .命令功能: 统计指定文件中的字节数.字数 ...

  10. 【LeetCode】060. Permutation Sequence

    题目: The set [1,2,3,…,n] contains a total of n! unique permutations. By listing and labeling all of t ...