IOS推送-pushy

iOS

  • 引入jar包
    • 创建APNSConnect
    • 进行发送
    • 报错对照表

引入jar包

在这里插入图片描述

创建APNSConnect

创建APNSConnect,与APNs进行链接
public class APNSConnect {

private static ApnsClient apnsClient = null;public static ApnsClient getAPNSConnectP8(String path,String teamId,String ketId) {if (apnsClient == null) {try {apnsClient = new ApnsClientBuilder().setApnsServer(ApnsClientBuilder.DEVELOPMENT_APNS_HOST).setSigningKey(ApnsSigningKey.loadFromPkcs8File(new File(path),teamId, ketId)).build();} catch (Exception e) {e.printStackTrace();}}return apnsClient;}public static ApnsClient getAPNSConnectP12(String path,String password) {if (apnsClient == null) {try {EventLoopGroup eventLoopGroup = new NioEventLoopGroup(4);apnsClient = new ApnsClientBuilder().setApnsServer(ApnsClientBuilder.DEVELOPMENT_APNS_HOST).setClientCredentials(new File(path), password).setConcurrentConnections(4).setEventLoopGroup(eventLoopGroup).build();} catch (Exception e) {e.printStackTrace();}}return apnsClient;}

}

进行发送

deviceToken为发送对象
alertTitle为发送标题
alertBody为发送内容
topic为包路径

public static void push(final String deviceToken, String alertTitle, String alertBody,boolean contentAvailable,Map<String, Object> customProperty,int badge,String topic) {// 包路径String path = "/app_push/IOS/3.4.2-dev.p8";// P8的teamIdString teamId = "111111";// P8的keyIdString keyId = "111111";// P12的证书密码String password = "111111";ApnsClient apnsClient = APNSConnect.getAPNSConnectP8(path,teamId,keyId);final AtomicLong successCnt = new AtomicLong(0);//线程安全的计数器ApnsPayloadBuilder payloadBuilder = new ApnsPayloadBuilder();if(alertBody!=null&&alertTitle!=null) {payloadBuilder.setAlertBody(alertBody);payloadBuilder.setAlertTitle(alertTitle);}//如果badge小于0,则不推送这个右上角的角标,主要用于消息盒子新增或者已读时,更新此状态if(badge>0) {payloadBuilder.setBadgeNumber(badge);}//将所有的附加参数全部放进去if(customProperty!=null) {for(Map.Entry<String, Object> map:customProperty.entrySet()) {payloadBuilder.addCustomProperty(map.getKey(),map.getValue());}}
    payloadBuilder.setContentAvailable(contentAvailable);// 通知的最大长度String payload = payloadBuilder.buildWithDefaultMaximumLength();final String token = TokenUtil.sanitizeTokenString(deviceToken);SimpleApnsPushNotification pushNotification = new SimpleApnsPushNotification(token, topic, payload);final Future<PushNotificationResponse<SimpleApnsPushNotification>> future = apnsClient.sendNotification(pushNotification);future.addListener(new GenericFutureListener<Future<PushNotificationResponse>>() {public void operationComplete(Future<PushNotificationResponse> pushNotificationResponseFuture) throws Exception {if (future.isSuccess()) {final PushNotificationResponse<SimpleApnsPushNotification> response = future.getNow();if (response.isAccepted()) {System.out.println("发送成功");successCnt.incrementAndGet();} else {Date invalidTime = response.getTokenInvalidationTimestamp();System.out.println("Notification rejected by the APNs gateway: " + response.getRejectionReason());if (invalidTime != null) {System.out.println("\t…and the token is invalid as of " + response.getTokenInvalidationTimestamp());}}} else {// logger.error("send notification device token={} is failed {} ", token, future.cause().getMessage());System.out.println("send notification device token={"+ token +"} is failed {"+ future.cause().getMessage() +"} ");}}});
}

报错对照表

https://www.jianshu.com/p/f4f016848a4e

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://xiahunao.cn/news/1381947.html

如若内容造成侵权/违法违规/事实不符,请联系瞎胡闹网进行投诉反馈,一经查实,立即删除!

相关文章

unipush+java+个推实现app消息推送

“ 你现在的气质里&#xff0c;藏着你走过的路&#xff0c;读过的书&#xff0c;和爱过的人。 ” 整体还是比较简单地&#xff0c;就是有一些需要注意的地方&#xff0c;很多问题官方文档里面也写了&#xff0c;这里总结一下 对于安卓&#xff0c;谷歌本来有专门的推送通道&…

uniapp - App 超详细消息推送功能实现,从 0-1 实现官方 unipush 推送全步骤稳定性毋庸置疑(附带详细的可运行示例源码和注释,保证 100% 完美接入)苹果安卓手机

效果图 网上的教程太乱用不了,无法改造成自己想要的效果。 在uniapp中开发的app(安卓苹果),使用 unipush 官方推送,从0-1实现完整过程及功能开发。 你可以直接复制示例源码,跟着教程一步步配置,注释详细! 准备 消息

Android 项目必备(三十八)-->APP 消息推送

文章目录 前言推送的实现方式1. C2DM2. 轮询3. SMS信令推送4. MQTT协议5. XMPP协议6. 使用第三方平台 Android 中 MQTT 的使用1. 集成2. 具体代码3. 项目地址 前言 今天来讲讲推送这件小事&#xff0c;事虽小&#xff0c;要做好却不容易。 推送难&#xff0c;难于上青天。 我们…

APP消息推送(APP Push)解决方案-服务端工作逻辑和实现

一、APP 推送概述&#xff1a; App推送消息是我们常见的一种app消息提醒方式。 我们的实现需要第三方的支持&#xff0c;实现方式是后台通过接口将Push请求发送至第三方&#xff0c;第三方实现在App所在设备上的推送。 二、APP推送后台处理逻辑&#xff1a; 在与推送平台交互时…

app消息推送的详细实现教程

实现的主要思想 app实现消息推送&#xff0c;利用的是第三方的个推平台&#xff0c;后端将需要推送的内容通过第三方个推服务器传递给手机端。 具体前端打包配置 根据上图可知&#xff0c;采用的打包软件是Hbuilder X,在模块配置的时候&#xff0c;勾选push模块中的uniPush。…

App消息推送的原理

文章目录 1. 基本概念2. iOS和Android消息推送原理对比2.1 iOS2.1.1 基本原理2.1.2 优劣势 2.2 Android2.2.1 基本原理2.2.2 优劣势 3. Android消息推送原理3.1 操作系统有自身的消息推送功能&#xff08;系统级别&#xff09;3.2 三种基本的推送方式&#xff1a;Push、Pull 和…

php实现app消息推送

如何用php实现APP消息推送 现在有很多的消息推送厂商&#xff0c;比如阿里云的消息推送&#xff0c;极光推送&#xff0c;融云的消息推送。他们的原理都是把sdk内置在app里面&#xff0c;达到消息推送的目的&#xff0c;通过一张图来了解一下&#xff0c;看不懂不要紧&#xf…

Android,ios,安卓app推送消息通知,java后台向手机推送app的通知教程

文章目录 一、业务介绍1.1 产品简介1.2 名词解释1.3 消息推送流程 二、应用创建三、客户端 SDK 集成3.1 Android3.2 iOS 四、服务端推送4.1 服务端消息下发流程&#xff08;必读&#xff09;4.2 开发者中心后台4.3 推送代码 五、参数说明 一、业务介绍 1.1 产品简介 个推是商…

App消息推送概述

消息推送介绍 消息推送&#xff08;Push&#xff09;&#xff0c;是指从云端服务器到手机终端的消息推送通道&#xff0c;运营人员可以通过自己产品后台或者第三方推送通道对用户移动设备进行主动的消息推送。通过消息推送&#xff0c;目标用户可以在移动设备通知和状态栏看到…

PushDeer:一种无APP的通知推送解决方案

概述 去年六月&#xff0c;我曾写下一篇博客介绍如何 借助 ServerChan 实现个人微信通知推送&#xff0c;在那篇文章中介绍了 ServerChan 及其使用方法&#xff0c;总的来说&#xff0c;对于简单的通知需求&#xff0c;使用 ServerChan 是非常简单有效的。但是实际使用起来&…

一文让你知道关于App推送那些事

推送相关介绍 在用户未打开App时&#xff0c;服务端向用户推送服务器最新的消息数据&#xff0c;称为推送。消息推送在移动开发中用到的场景非常多&#xff0c;比如典电商类app的商品促销活动&#xff0c;资讯类的app的新闻推送等等。在实际开发中&#xff0c;我们常常会根据产…

关于ISO27701隐私信息安全管理体系介绍

01 什么是ISO27701 ISO27701是对ISO27001信息安全管理和ISO27002安全控制的隐私扩展&#xff0c;全称《安全技术—扩展ISO27001和ISO27002的隐私信息管理—要求与指南》&#xff0c;是ISO标准委员会以ISO 27001为基准&#xff0c;以ISO27552为蓝本&#xff0c;建立发布的隐私…

双向循环链表、dancing links

目录 双向循环链表 力扣 426. 将二叉搜索树转化为排序的双向链表 十字交叉双向循环链表&#xff08;dancing links&#xff09; 精确覆盖问题 dancing links X算法&#xff08;V1递归版&#xff09; POJ 3740 Easy Finding 数独 X算法优化 X算法&#xff08;V2非递归…

jpg照片太大怎么压缩变小?jpg如何缩小图片大小kb?

我们平时在接收过多的jpg格式图片的时候&#xff0c;越大的图片虽然越清晰&#xff0c;但是接收和储存起来就非常不方便&#xff0c;那么有没有什么办法可以将jpg图片压缩呢&#xff1f;其实现在可以通过在线图片处理工具来完成jpg压缩&#xff08;https://www.yasuotu.com/jpg…

html宽度一变小图形就上去,如何把图片大小变小?

我们在布局图片列表时&#xff0c;通常我们要控制图片的高度和宽度这样来达到图片统一。我们在HTML布局时候直接在图片img标签加宽度和高度属性即可控制图片高和宽。 一、html img图片标签高度宽度设置 我们可以直接在图片标签设置宽度width和高度height&#xff0c;这里需要注…

ChatGPT等人工智能编写文章的内容今后将成为常态

BuzzFeed股价上涨200%可能标志着“转向人工智能”媒体趋势的开始。 周四&#xff0c;一份内部备忘录被华尔街日报透露BuzzFeed正计划使用ChatGPT聊天机器人-风格文本合成技术来自OpenAI&#xff0c;用于创建个性化盘问和将来可能的其他内容。消息传出后&#xff0c;BuzzFeed的…

照片怎么转换大小?怎么把图片尺寸变小?

平时在使用QQ截图之后&#xff0c;发现图片尺寸过大不方便上传&#xff0c;该怎么解决图片大小转换问题呢&#xff1f;本文将介绍一款图片改大小&#xff08;https://www.yasuotu.com/size&#xff09;工具&#xff0c;可以在线处理图片尺寸&#xff0c;打开浏览器即可调整图片…

照片大小kb怎么调整变小?

伴随着工作和生活的需要&#xff0c;图片的应用遍及我们生活和工作的方方面面&#xff0c;随之我们的电子设备上面累积的图片文件也越来越多。因为图片使用的场景不同&#xff0c;所以对图片的大小也有不同的要求&#xff0c;那就要求我们学会调整照片大小的方法&#xff0c;会…

如何压缩照片大小-照片无损压缩办法

图片大家都不陌生&#xff0c;于生活于工作我们都能接触到&#xff0c;但并不是原图片什么样&#xff0c;我们都可以直接进行使用的。很多图片的质量虽然特别的高清&#xff0c;但是它的体积也像特别大&#xff0c;这时候无论我们是传输给他人&#xff0c;还是上传到各个社交媒…

C#,数值计算——抛物线插值与Brent方法(Parabolic Interpolation and Brent‘s Method)的计算方法与源程序

using System; namespace Legalsoft.Truffer { /// <summary> /// 抛物线插值与Brent方法 /// Parabolic Interpolation and Brents Method /// </summary> public class Brent : Bracketmethod { public double xmin { get; set…