标签:java web apns 本地化字符串 ios推送 notnoop
Android应用一般通过后台向服务器轮询请求获取信息,而iOS应用则会在被切换到后台一段时间后停止运行,这时候如果想要达到信息的获取则只能依靠APNS(Apple Push Notification Service),由服务器主动进行推送。APNS的原理以及令牌获取方式网上一搜一大堆,这里主要介绍一下Java的APNS类库notnoop。
notnoop中的核心类是ApnsService和PayloadBuilder,ApnsService可以向服务器发送请求,并且在ApnsServiceBuilder中提供了常用的服务器host。一个ApnsService的创建可以通过下面几句简单的代码完成:
//p12文件路径 String keyPath = "E:/Pushtest.p12"; //p12文件密匙 String password = "111111"; //创建一个APNS service ApnsService service = APNS.newService() .withCert(keyPath, password) //使用指定的p12文件以及密匙 .withSandboxDestination() //使用apple的测试服务器 .build();
而PayloadBuilder则可以帮助开发者轻松地创建一个符合APNS规范的JSON,例如:
//创建一个消息 String payload = APNS.newPayload() .alertBody("hello world!") //推送通知显示的文字 .sound("default") //推送时附带的声音提示 .badge(1) //应用程序图标右上角显示的数字 .build();
//token由客户端获取 String token = "45124a4cf9f5e272d395f6392456e5ab7185d2ae6e98ba2f8426fe09f60e785b"; //发送消息到iOS设备 service.push(token, payload);
//Localizable.strings中定义 "focus"="%@关注了你" List<String> args = new ArrayList(); args.add("张三"); String payload = APNS.newPayload() .localizedKey("focus") //本地化字符串的key .localizedArguments(args) //动态生成的参数 .build(); service.push(token, payload); //推送结果: 张三关注了你
标签:java web apns 本地化字符串 ios推送 notnoop
原文地址:http://blog.csdn.net/sinat_19425927/article/details/43151925