leanCloud集成-java服务端(一)

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/zwrlj527/article/details/79707218
leanCloud集成-java服务端(一)
序:
这个是第三方消息推送,服务端集成后,客户端引入对应的SDK,保证appid,appkey,appmaster一致就可以收到对应的推送信息了。
一,服务端集成步骤
maven引入
<dependency>
<groupId>cn.leancloud</groupId>
<artifactId>java-sdk</artifactId>
<version>0.1.6</version>
</dependency>
也可以下载对应的jar,放到自己项目的lib里。
二,创建应用
登陆leanCloud的控制台,创建应用,
点击新创建应用的这个齿轮,查看应用key信息,获取AppID,AppKey,MasterKey信息

三,测试是否可以连通leanCloud的推送服务器
推送服务器地址:
AppID的前8位 + .api.lncld.net
官网上这样说:
注意,实际是不要“{”和“}”的,如果能连通,ping的结果应该是:
四,推送测试
先点击存储,创建Class

注意不要心急一直点,否则回提示初始化过快。创建成功后,回看到创建的类:
这里如果不创建类,回提示:
如果一直点创建类,或点了类还没有创建完成(在存储里看不到自己的类),则会提示:
剩下就是写测试代码,测试代码其实非常简单:
写完这样一个main的静态方法,run as 你懂的,控制台不报错,那就可以去leanCloud控制台的-》存储-》类名下看记录了。还有点要注意的是,这里默认是使用国内节点,如果要推送到国外,节点用北美的。官网明确指出: 各个节点彼此独立,开发者账号无法跨节点来创建应用或调用 API。
另外生产环境需要增加:
AVOSCloud . setDebugLogEnabled ( true ); //避免敏感信息在日志里打印,
run as成功后控制台的记录:
点击objectid的链接,可以看到详细信息
到这里说明我们的推送信息生成没有问题了,剩下的就是把信息推送到指定设备,这就要用到 AVQuery /AVPush了。
下面是个人的理解:
AVQuery:查询推送信息查询类
AVPush:推送工具类
使用这2个工具类实现推送到具体设备。
AVQuery pushQuery = AVInstallation.getQuery(); //AVQuey 查询要推送的设备信息 pushQuery.whereEqualTo( "channels" , "public" ); //给查询到的设备推送信息 AVPush push = new AVPush();
push.setQuery(pushQuery);
push.setMessage( "Push to channel." );
push.setPushToAndroid( true );
push.sendInBackground( new SendCallback() {
@Override public void done (AVException e) {
if (e == null ) {
} else {
}
}
});

总结,我们要关注的点可能有以下几个方面:
1,业务代码需要获取app的区域,以便我们选择正确的推送节点
2,怎么推送的我们不关心,我们应该关心的是我们的推送内容
3,高并发下推送是否及时(这个应该是升级为leanCloud的vip或企业用户就ok了)
4.服务端业务逻辑里就要组织确定推送的范围了,可以细化到具体唯一设备
例如不能我A 的信息推到B的设备上展示或所有设备展示。


我自己剩下的疑问:
1,推送信息控制台是有了,但是怎么保证用户的设备确实收到了?
是否可以设备收到后,发状态给leanCloud还是我们自己的项目。
2,用户拒绝接收app的消息推送,怎么办?
是否可以打开app时,app读取权限,看是否被拒绝,如果被拒绝,总结跳转让设置允许或一直提示,同时app不可用?或者记录用户的设置到服务端,如果是被拒绝,调用短信推送方式?

其实上面的问题可能是还有很多API没有看完,后面有时间再整理二,具体先到这里,任务来了,不对的地方请大家多包涵,顺便留言指正,共同学习。

猜你喜欢

转载自blog.csdn.net/zwrlj527/article/details/79707218