务虚废话,直接来代码
方式一: 推送文字,百度Demo比较多,显示以下代码:
try
{
//从客户端获取的deviceToken,在此为了测试简单,写固定的一个测试设备标识。
String deviceToken = "f117797e2b98f3ca82c12e376dc5753debbff94396c7f427b22b086f65f6da89";
System.out.println("Push Start deviceToken:" + deviceToken);
//定义消息模式
PayLoad payLoad = new PayLoad();
payLoad.addAlert("this is test!");
payLoad.addBadge(1);//消息推送标记数,小红圈中显示的数字。
payLoad.addSound("default");
payLoad.addCustomDictionary("url", "https://img.icos8.cc/image/hhvy");
//注册deviceToken
PushNotificationManager pushManager = PushNotificationManager.getInstance();
pushManager.addDevice("iPhone", deviceToken);
//连接APNS
String host = "gateway.sandbox.push.apple.com"; //测试
//String host = "gateway.push.apple.com";//生产
int port = 2195;
// String certificatePath = "D:/p12/**-cert.p12";//客户端生成的用于JAVA后台连接APNS服务的*.p12文件位置
String certificatePath = "C:/tomcat/aps_development_key.p12";//客户端生成的用于JAVA后台连接APNS服务的*.p12文件位置
String certificatePassword = "123123";//p12文件密码。
pushManager.initializeConnection(host, port, certificatePath, certificatePassword, SSLConnectionHelper.KEYSTORE_TYPE_PKCS12);
//发送推送
Device client = pushManager.getDevice("iPhone");
System.out.println("推送消息: " + client.getToken()+"\n"+payLoad.toString() +" ");
pushManager.sendNotification(client, payLoad);
//停止连接APNS
pushManager.stopConnection();
//删除deviceToken
pushManager.removeDevice("iPhone");
System.out.println("Push End");
}
catch (Exception ex)
{
ex.printStackTrace();
}
}
方式二: 推送图片
区别于方式一: 重写Payload方式,添加一些属性:
private static final String APS = "aps";
private Map<String, Object> params;
private String alert;
private Integer badge;
private String sound = "";
// private Integer contentAvailable;
// 新添加
private Integer mutableContent;
// 新添加
public Integer getMutableContent() {
return mutableContent;
}
public void setMutableContent(Integer mutableContent) {
this.mutableContent = mutableContent;
}
private String alertBody;
private String alertActionLocKey;
private String alertLocKey;
private String[] alertLocArgs;
private String alertLaunchImage;
细节点: 类似于苹果规定格式要求的json串,就行
方式三: 推送 视频:
与方式二一样;
提供思路: Java 后台推送消息至苹果APNS,苹果收到信息,推送至指定的deviceToken,也就是设备,客户端接收到消息,看其中是否有mutable-content,获取其值字段值为1,则说明推送的消息内容含有图片,客户端获取指定url,下载并展示到当前设备的通知栏