发送简单的消息现在已经成功实现了,是基于最新版本的JAVAPNS做的,但是现在有个需求,不仅仅是要发送一个简单的提示,还附加的给客户端推送一些数据,以便于用户在打开应用后展示相关内容,看了一下JAVAPNS里面test程序有一个createComplexPayload的方法,貌似是来构建复杂的消息的,但是里面参数很多,不太懂,请问如何才能利用JAVAPNS来实现我的功能呢?现在附上javapns中复杂消息的实现:
private static Payload createComplexPayload()
{
PushNotificationPayload complexPayload = PushNotificationPayload.complex();
try
{
complexPayload.addCustomAlertBody("My alert message");
complexPayload.addCustomAlertActionLocKey("Open App");
complexPayload.addCustomAlertLocKey("javapns rocks %@ %@%@");
ArrayList parameters = new ArrayList();
parameters.add("Test1");
parameters.add("Test");
parameters.add(Integer.valueOf(2));
complexPayload.addCustomAlertLocArgs(parameters);
complexPayload.addBadge(45);
complexPayload.addSound("default");
complexPayload.addCustomDictionary("acme", "foo");
complexPayload.addCustomDictionary("acme2", 42);
ArrayList values = new ArrayList();
values.add("value1");
values.add(Integer.valueOf(2));
complexPayload.addCustomDictionary("acme3", values);
}
catch(JSONException e)
{
System.out.println("Error creating complex payload:");
e.printStackTrace();
}
return complexPayload;
}
private static Payload createComplexPayload()
{
PushNotificationPayload complexPayload = PushNotificationPayload.complex();
try
{
complexPayload.addCustomAlertBody("My alert message");
complexPayload.addCustomAlertActionLocKey("Open App");
complexPayload.addCustomAlertLocKey("javapns rocks %@ %@%@");
ArrayList parameters = new ArrayList();
parameters.add("Test1");
parameters.add("Test");
parameters.add(Integer.valueOf(2));
complexPayload.addCustomAlertLocArgs(parameters);
complexPayload.addBadge(45);
complexPayload.addSound("default");
complexPayload.addCustomDictionary("acme", "foo");
complexPayload.addCustomDictionary("acme2", 42);
ArrayList values = new ArrayList();
values.add("value1");
values.add(Integer.valueOf(2));
complexPayload.addCustomDictionary("acme3", values);
}
catch(JSONException e)
{
System.out.println("Error creating complex payload:");
e.printStackTrace();
}
return complexPayload;
}
不用太纠结javapns,其实只要理解苹果推送的消息结构就可以做了。
苹果的基本消息结构是:{"aps":{"alert":"Hello, world!","sound":"default"}},这是一个json字典串,所以可以再里面适当的增加项,比如"id":"123",当苹果客户端打开程序的时候,接受这个字典,取出id,去取相应的信息。