前端 uniapp 极光对接参考另一篇文章
下载sdk
两个都要下载
极光javasdk下载和使用说明
极光javasdk所依赖的包
下载之后应该是这样两个文件
敲代码
新建空的maven项目然后加上这些依赖
<build>
<resources>
<resource>
<directory>src/main/resources</directory>
<includes>
<include>log4j.properties</include>
</includes>
<filtering>true</filtering>
</resource>
</resources>
</build>
<dependencies>
<dependency>
<groupId>org.projectlombok</groupId>
<artifactId>lombok</artifactId>
<version>1.18.6</version>
<scope>provided</scope>
</dependency>
<dependency>
<groupId>cn.jpush.api</groupId>
<artifactId>jiguang-common</artifactId>
<version>1.1.10</version>
</dependency>
<dependency>
<groupId>io.netty</groupId>
<artifactId>netty-all</artifactId>
<version>4.1.6.Final</version>
<scope>compile</scope>
</dependency>
<dependency>
<groupId>com.google.code.gson</groupId>
<artifactId>gson</artifactId>
<version>2.3</version>
</dependency>
<dependency>
<groupId>org.slf4j</groupId>
<artifactId>slf4j-api</artifactId>
<version>1.7.7</version>
</dependency>
<!-- For log4j -->
<dependency>
<groupId>org.slf4j</groupId>
<artifactId>slf4j-log4j12</artifactId>
<version>1.7.7</version>
</dependency>
<dependency>
<groupId>log4j</groupId>
<artifactId>log4j</artifactId>
<version>1.2.17</version>
</dependency>
</dependencies>
解压下载的jpush-api-java-client-master.zip
文件,将解压的文件中src\main\java复制到我们刚创建的空项目中的同样位置
代码参考:java后台服务器实现极光推送
import cn.jpush.api.JPushClient;
import cn.jpush.api.push.PushResult;
import cn.jpush.api.push.model.Message;
import cn.jpush.api.push.model.Options;
import cn.jpush.api.push.model.Platform;
import cn.jpush.api.push.model.PushPayload;
import cn.jpush.api.push.model.PushPayload.Builder;
import cn.jpush.api.push.model.audience.Audience;
import cn.jpush.api.push.model.notification.Notification;
public class PushTest {
public static void main(String[] args) {
pushNotice("alias","testAlias22","别名推11送测试");
}
//两个参数分别填写你申请的masterSecret和appKey
private static JPushClient jPushClient = new JPushClient("75d3ac36be7e5eb099d90eec", "e118c20d7d0efbcb23530f11");
/**
* 通知推送
* 备注:推送方式不为空时,推送的值也不能为空;推送方式为空时,推送值不做要求
*
* @param type 推送方式:1、“tag”标签推送,2、“alias”别名推送
* @param value 推送的标签或别名值
* @param alert 推送的内容
*/
private static void pushNotice(String type, String value, String alert) {
Builder builder = PushPayload.newBuilder();
builder.setPlatform(Platform.android());//设置接受的平台,all为所有平台,包括安卓、ios、和微软的
//设置如果用户不在线、离线消息保存的时间
Options options = Options.sendno();
options.setTimeToLive(86400l); //设置为86400为保存一天,如果不设置默认也是保存一天
builder.setOptions(options);
//设置推送方式
if (type.equals("alias")) {
builder.setAudience(Audience.alias(value));//根据别名推送
} else if (type.equals("tag")) {
builder.setAudience(Audience.tag(value));//根据标签推送
} else {
builder.setAudience(Audience.all());//Audience设置为all,说明采用广播方式推送,所有用户都可以接收到
}
//设置为采用通知的方式发送消息
builder.setNotification(Notification.alert(alert));
PushPayload pushPayload = builder.build();
try {
//进行推送,实际推送就在这一步
PushResult pushResult = jPushClient.sendPush(pushPayload);
System.out.println("结果是"+pushResult);
} catch (Exception e) {
e.printStackTrace();
}
}
}
运行代码
成功
则返回:结果是{“msg_id”:20266430260995514,“sendno”:943932215,“statusCode”:0}
识别则返回
:错误信息,具体错误代码参考官方文档
注意
- 免费版的api调用次数限制是每分钟600次足够测试用了