本文主要是介绍iOS推送javaPNS源码解析一,设备类,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
最近分析了javaPns2.2的源码,根据模块简要总结下
首先是device模块,device顾名思义就是设备的意思,这对于ios手机推送来说,就是iPhone4/4s/5/5s/6/6s,当然推送到平板应该也是可以的,平板的我没试过,有条件的童鞋们可以试下。
先说Device接口吧,该接口定义了设备的基本属性的获取方法,1、token;2、最后跟服务器注册时间;3、deviceId,一般情况下跟token一致,表示唯一的设备。推送的时候我们只设置token就好了。
DeviceFactory,该接口已经不推荐使用,该接口用于向一个map中存取删Device对象,好简单有木有!
Devices,这个是个经常使用的实类,主要有两个方法,
public static List<Device> asDevices(Object rawList),该方法是将String,String[],List<String>,List<Device>,Device[]等类型的参数转化为一组设备对象,很高大上有木有,不过说白了里面就是根据token创建device对象Device,或者判断为Device类型后直接返回。
public static List<PayloadPerDevice> asPayloadsPerDevices(Object rawList),这个方法是将PayloadPerDevice[],PayloadPerDevice,List<PayloadPerDevice>格式的对象返回为List<PayloadPerDevice>对象
这里面需要说明一个类PayloadPerDevice,该类表示它自身包含一个消息体和一个设备,该消息体要发给这个设备。
下面看设备的基本实现
BasicDeviceFactory,这个类实现了DeviceFactory接口,内部实现了一个Map<String, BasicDevice>对象,进行device的增删查,该map使用deviceId作为key,以Device最为value。已经不推荐使用该类。
BasicDevice,该类实现Device接口,实现其相关属性的set/get方法,并提供了token校验:是否64位。
剩下的就是各种异常类
DuplicateDeviceException,BasicDeviceFactory中存入map的时候发现相同的key,报异常
InvalidDeviceTokenFormatException,token校验失败异常
NullDeviceTokenException,BasicDeviceFactory中存入map的时候发现key为null,报异常
NullIdException,BasicDeviceFactory中存入map的时候发现id为null,报异常
UnknownDeviceException,BasicDeviceFactory中获取设备为null,报异常
这篇关于iOS推送javaPNS源码解析一,设备类的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!