概述 Xcode 8正式版在9月13日已经推送给开发者下载,下载之后就出现了很多编译错误,之前的插件也不能用了,但是发现Xcode8把好多不错的插件功能整合到自身了,感觉这点也挺不错。 结合自己遇
本文主要对iOS Push的在线push、本地push及离线(远程)push进行梳理,介绍了相关逻辑,测试时要注意的要点以及相关工具。
前言 在去年的苹果大会上,苹果带来的iOS 10 系统中将之前繁杂的推送通知统一成UserNotifications.framework 来集中管理和使用通知功能,还增加一些实用的功能——撤回单条通知、更新已展示通知、中途修改通知内容、在通知中显示多媒体资源、自定义UI等功能。 那么在ios10之前,ios的消息推送是怎么分类的呢? ios 10之前 在ios之前,iOS推送分为Local Notifications(本地推送) 和 Remote Notifications(远程推送)。 本地推送 不需
1)在线Push:比如QQ、微信等IM界面处于前台时,聊天消息和指令都会通过IM自建的网络长连接通道推送过来,这种Push在本文中暂且称为“在线Push”;
可以看出,JPush iOS Push 包括 2 个部分,APNs 推送(代理)与 JPush 应用内消息。 红色部分是 APNs 推送,JPush 代理开发者的应用(需要基于开发者提供的应用证书),向苹果 APNs 服务器推送。由 APNs Server 推送到 iOS 设备上。 蓝色部分是 JPush 应用内推送部分,即 App 启动时,内嵌的 JPush SDK 会开启长连接到 JPush Server,从而 JPush Server 可以推送消息到 App 里
单独整理消息通知的内容,但是因为工(就)作(是)的(很)事(懒)没有更新文章,违背了自己的学习的初衷。因为互联网一定要有危机意识,说不定眼一睁,我们就欧了 。
一次偶然的机会,公司的项目要用到推送,我自己本来就很懒,不愿意去弄整套APNS的流程,刚好之前跟朋友聊起过他们的产品中集成了个推的Android推送,说是体验还可以,那这次我就试一下他们的iOS推送。于是抱着试一试的心态,我先建个demo,试着去集成一下个推iOS推送SDK,摸索着完成了整个流程,言归正传,直接上硬菜!
版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/u010105969/article/details/52779829
如上是iOS消息推送的详细流程图,主要分为几个过程: (1)App启动过程中,使用UIApplication::registerForRemoteNotificationTypes函数与苹果的APNS(Apple Push Notification Service,苹果消息推送服务器)通信,发出注册远程推送的申请。 (2)若注册成功,APNs 会返回一个设备的标识符即 DeviceToken 给 App,回调函数application:(UIApplication *)application didRegisterForRemoteNotificationsWithDeviceToken:(NSData*)deviceToken 会被触发,App可以得到deviceToken。 (3)App获取到DeviceToken后,将DeviceToken发送给自己的服务端。 (4)服务端拿到DeviceToken以后,当有消息要推送时,服务端使用证书文件,向苹果的APNS服务器发起一个SSL连接。连接成功之后,发送一段JSON串,该JSON串包含推送消息的类型及内容。 (5)苹果的APNS服务器得到推送消息(JSON串)以后,向App发送通知消息,使得App的回调函数application:(UIApplication*)application didReceiveRemoteNotification:(NSDictionary *)userInfo被调用,App从userInfo中即可得到推送消息的内容。
许多 iOS 应用程序正在使用由推送通知触发的后台进程来收集设备的用户数据,从而有可能创建用于跟踪的指纹档案。Mysk 指出,这些应用程序绕过了苹果公司的后台应用程序活动限制,对 iPhone 用户构成了隐私风险。
从 iOS 10 新增的 UserNotifications Framework 可以发现,Apple 整合了原有散乱的 API,并且增加了许多强大的功能。以 Apple 官方的角度来看,也必然是相当重视推送服务对 App 的影响、以及对 Apple iOS 生态圈长远发展的影响。
近年来,通知功能已经成为许多应用程序中突出的特性。构建一个能每天发送数百万通知的可扩展系统绝非易事。这正是为什么我觉得有必要记录我在这方面踩坑之路。也叫用户触达系统。
作者:allenzzhao,腾讯 IEG运营开发工程师 消息推送我们几乎每天都会用到,但你知道iOS中的消息推送是如何实现的吗?本文将从推送权限申请,到本地和远程消息推送,再到App对推送消息的处理等多个步骤,详细介绍iOS中消息推送的工作流程。 1、概述 消息推送是一种App向用户传递信息的重要方式,无论App是否正在运行,只要用户打开了通知权限就能够收到推送消息。开发者通过调用iOS系统方法就可以发起本地消息推送,例如我们最常见的闹钟应用,App能够根据本地存储的闹钟信息直接发起本地通知,因此即
好的消息推送三要素:timely、personal、actionable。消息推送对用户留存率与活跃度至关重要。用户愿意打开消息推送,是对你的 App 的信任。 推送通知策略分析 智能手机的发展已经有近十年时间了,而在移动设备中,推送通知的潜力不可小觑。在进入 Slack 之前,Weiss 曾在 Foursquare 工作。Weiss 也曾是 Google 数据搜索项目的主要产品经理。对于推送通知的策略、投入、指标和准则,Weiss 有着深刻的智慧。 推送通知的发展 Weiss 总结了推送的三大特质:及时性、个人化和可操作性。在构建未来战略时,要考虑历史的车轮: 1. 推送通知的前辈 —— 电子邮件 在早期网络时代时,推送通知的形态其实就是电子邮件。电子邮件和推送之间有很多相似的地方。同样都是通过一个地址,让用户和网站进行开放式通信,甚至于电子邮件的「取消订阅」选项,其实就相当于通知中的推送设置。 2. 手机时代 当智能手机兴起后,用户越来越频繁地通过移动设备来完成娱乐甚至办公的需求,电子邮件在充当推送功能的这方面便开始没落了。作为互联网原住民的 90 及以后的用户,其实是很难感知到更早些时候的互联网习惯是 —— 每天检查邮箱好几次。因此当我们在回看历史的进展中,总会阅读到一些关于电子邮件如何成功进行营销的案例。 3. 来自短信的竞争 在手机上,推送通知是一则简短的文字。推送意味着需要很强的及时性,而不是像电子邮件一样发送出去后,几天内用户都未必会打开。另外值得关注的一点事,推送通知的实时性和对实时性的关注又是两个完全不同的概念,通过短信发送的通知,关注的优先级可能会更高。 4. 其他 App 也不是善类 当人们开始普遍使用智能手机时,屏幕基本是 4×4 网格,而现在,一个普通用户手机上大约有 55 个应用程序。对这么多的 App 来说,我们很难做到雨露均沾,不是每个应用都是 WeChat 或者 Facebook 这种国民级别的 App,因此这也就是推送通知变得越来越重要的原因。你的应用可能不会被用户经常使用,也可能不在主屏幕,甚至用户都可能忘了你,而一则推送则是唤醒用户的手段。 你不能依靠用户在天时地利时记起你,你得主动出击。 %image_alt% (Noah Weiss) 围绕以下原则构建推送策略 一则优秀的推送通知可能会考虑很多因素,比如设备附近的 WiFi、社会新闻热点或者其他重点组合起来考虑,再进行通知。Weiss 概述了他在开发推送通知系统时学到的基本经验: 1. 提升 App 的用户留存时间 从用户留存的角度来看,应用程序在脱离了它的功能之外,收益递减。因此在移动应用中,提高用户的留存时间是个不小的挑战。与此对应,现在已经有不少成熟的策略,诸如应用安装营销、社交渠道推广、SEO 和 SEM 等。然而真正的难点在于如何让新用户养成使用你 App 的习惯。 因此,在为你的应用打造所谓顶级用户体验之前,你得知道,仅仅当用户打开了这个应用程序才会有这个顶级用户体验。 2. 别让用户刚下载就想卸载 推送通知不仅是提升用户留存的好形式,同时在技术上也是必要的。在 iOS 平台,发送通知是必须让用户进行授权的权限,它不同于 Android 的直接授权,iOS 平台上下载安装完成应用后你必须提醒用户去设置这个权限。因此这成了一个关键节点,如果用户拒绝,那么很可惜,这个 App 对沉默用户将没有主动权,同时它的活跃度也会大幅下降。当然啦用户授权也不代表着这个 App 能怎样。 如果用户对这个 App 的推送感到厌烦,你能获得的最好的结果是用户主动选择某些通知处于活跃状态,而另一些通知保持沉寂。不过现实往往是残酷的,用户更可能到手机设置页面关掉所有推送通知,更坏的情况是直接卸载,而这个结果几乎是不可逆转的。 那么,应用的首次推送通知的体验将变得异常重要,否则用户就直接到设置界面投票了。 所以第一步是提醒用户进行通知权限的授权,如果用户答案是否定的,那其实后面也没什么关系了。它涉及用户忠诚度培养等其他东西,这是后话。鉴于通知权限的高额收益,如果你聪明的话,在这方面应该是非常谨慎的。 3. 三个指标衡量推送效益 用户拒绝通知权限请求的速度 卸载率 每百次操作 对于推送通知来说,你必须平衡用户积极参与和选择拒绝这二者之间的平衡。首先可以以卸载率和通知禁用率作为评估标准,对于消费者应用程序,卸载率低于 2% 是比较安全的。监控任何剧烈的数据波动都会有利于你的策略布置。 值得注意的一点事,要比较 iOS 和 Android 平台上的数据,因为 iOS 开放性远远低于 Android。同时,不同操作系统对于通知的处理方式也不一样,例如 Android 的通知可以显示内嵌照片,这可以提高 10% – 20% 的互动率。还有些通知是带有内置操作按钮,以便用
在现代信息化社会中,即使我们不在电脑前面也能随时获取到最新的数据。而苹果公司提供的iOS推送通知功能为我们带来了一种全新的方式——通过手机接收实时监控和报警信息。
在今年6月14号苹果WWDC开发者大会上,苹果带来了新的iOS系统——iOS 10。苹果为iOS 10带来了十大项更新。苹果高级副总裁Craig Federighi称此次对iOS的更新是“苹果史上最大的iOS更新”。
APNs,即 Apple Push Notification Service,依托一个或几个系统常驻进程运作,是全局的(接管所有应用的消息推送),可看作是独立于应用之外,设备与苹果的服务器之间维持一个长连接进行消息传递。
编辑导语 北京时间6月14日凌晨01:00,苹果在旧金山举行一年一度的苹果全球开发者大会(WWDC)。WWDC 2016大会上,iOS 10被放在了最后一位压轴出场,同时演讲者也花费了大量篇幅并重点介绍了新一代移动操作系统iOS10。 ---- 北京时间6月14日凌晨01:00,苹果在旧金山举行一年一度的苹果全球开发者大会(WWDC)。WWDC2016大会上,iOS10被放在了最后一位压轴出场,同时演讲者也花费了大量篇幅并重点介绍了新一代移动操作系统iOS10。iOS10带来了相册、地图、音乐、Siri等十
公司要求像支付宝收款一样,收到推送后实现语音播报功能,之前没有做过,特此机会研究一下。 用到的技术点: 1.如果对语音要求不是特别高的情况下,用苹果系统自带的AVSpeechUtterance可以实现
推送通知已成为构建移动应用时需要考虑的重要功能。由于它们类似于短信,但发送不需要任何费用,许多企业现在更喜欢使用推送通知向应用用户发送信息和警报。
关于通知,无论与远程Push还是本地通知,以往的iOS系统暴漏给开发者的接口都是十分有限的,开发者只能对标题和内容进行简单的定义,至于UI展示和用户交互行为相关的部分,开发者开发起来都十分困难。至于本地通知,iOS10之前采用的是UILocationNotification类,远程通知有苹果服务器进行转发,本地通知和远程通知其回调的处理都是通过AppDelegate中的几个回调方法来完成。iOS10系统中,通知功能的增强是一大优化之处,iOS10中将通知功能整合成了一个框架UserNotification,其结构十分类似于iOS8中的UIWebView向WebKit框架整合的思路。并且UserNotification相比之前的通知功能更加强大,主要表现在如下几点:
概念 1.推送通知有5种不同的呈现效果 在屏幕顶部显示一块横幅(显示具体内容) 在屏幕中间弹出一个UIAlertView(显示具体内容) 在锁屏界面显示一块横幅(锁屏状态下,显示具体内容) 更新app图标的数字(说明新内容的数量) 播放音效(提醒作用) 2.用户也可以决定是否要开启以下4个功能: 显示App图标数字 播放音效 锁屏显示 显示在“通知中心” 3、注意: 发送推送通知时,如果程序正在前台执行,那么推送通知就不会被呈现出来,但是微信在前台的时候也能推送消息,方法是:创建一个view,仿造系统消息通
#2. Enable Push NotificationSerivice, 并创建和下载开发/发布推送证书
1、NSNotification是系统内部发出通知,一般用于内部事件的监听,或者状态的改变等等,是不可见的 2、本地通知与远程通知是可见的,主要用于告知用户或者发送一些App的内容更新,推送一些相关的消息,让用户知道App内部发生了什么事情。
推送服务可以说是所有 App 的标配,不论是哪种类型的 App,推送都从很大程度上决定了 App 的 打开率、使用率、存活率 。因此,熟知并掌握推送原理及方法,对每一个开发者来说都是必备技能,对每一个依赖 App 的公司来说都至关重要。本文主要讨论项目中使用极光推送来实现推送业务。
作者丨Kevin Basset 译者丨明知山 策划丨褚杏娟 PWA (Progressive Web App)的想法不是由 Google 或 Apple 提出的,而是 Steve Jobs 在 2007 年 iPhone 推出期间首次将这一概念展示在了世界面前。当时,外部应用程序似乎可以帮助提高该设备的受欢迎程度,Jobs 希望开发人员使用标准 Web 技术来构建应用程序。 你可以编写令人惊叹的 Web 2.0 和 Ajax 应用程序,它们的外观和行为与 iPhone 上的应用程序一模一样,而且这些
我们在实现推送功能的时候,更需要了解下推送的原理机制,这样我们在发现问题时候才好定位到问题的解决办法。
本文翻译自:raywenderlich.com,原文作者:Jack Wu,译者:JMStack
2016-06-1407:35:04 发表评论 896℃热度 iOS 10 macOS Sierra WatchOS 3 tvOS 目录 作为一个iOS程序猿,昨天熬夜看WWDC2016,看到凌晨3点,看的是王自如在熊猫TV的直播。这里给大家简单介绍下大会上4大系统的升级说明。 iOS 10 iOS10这次拥有10项重大革新,而且其中很多新功能几乎是为中国用户量身打造,可以说iOS10是史上最接中国地气的国外研发操作系统。 1、锁屏 虽然iOS10的UI设计总体上并没有特别明显的变化,但还是重新设
下面是一个C#库(兼容Mono),允许你推送通知到iOS应用程序和Android,Windows Phone和一些黑莓应用程序。在iOS和Android开发中给App应用软件推送消息通知是很常用的方式。今天给大家iOS和Android开发者推荐一个可以给实现给包括iOS、Android和Windows Phone及Blackberry多种操作系统的App应用推送消息通知的开源C#库 - PushSharp,同时PushSharp这个C#库可以兼容Mono框架。 这是一些在GitHub的Readme文档中列出
推送消息是能够让你对 Confluence 站点进行了解的好方法,就算你没有在使用应用的时候,推送的消息将会在你的移动设备上显示。点击推送的消息,可以打开移动 app 将你带到移动 app 中显示更多的内容。
远程通知是指服务器发出的通知,通过苹果的推送然后到达用户设备。本地通知是指不通过网络,直接安装应用后就可以接到通知了,典型的例子是日历、待办、闹钟等应用。
通知是许多产品不可或缺的一部分。我们今天设计的几乎所有产品都需要一些系统来与我们的用户共享更新。
眨眼2016年就这么走到了结尾,再过两天新年就要开始了。回顾从2016年开始养成的写博客的习惯,一直能延续下来,保持了一整年,还是比较欣慰的一件事情。希望2017年自己的技术能够继续稳步的提升。
Xcode 11.4 之前必须使用第三方和真机来测试远程推送(APNS)。 但 Xcode 11.4 之后可以通过simctl命令在模拟器上进行测试。
随着苹果爸爸在WWDC2019发布了新的iOS13,两年前的这篇微信iOS收款到账语音提醒开发总结方案已经不再适用,具体的原因是iOS13中(准确的说是使用XCode11编译)苹果不再允许PushKit应用在非voip电话的场景上。在iOS13中,苹果比以往更关注用户的隐私以及设备的电池续航问题,所以对PushKit的能力进行了收拢。如果需要使用PushKit的话则需要接入CallKit的接口,导致收到客户端收到Voip Push时会拉起一个接打电话的全屏界面,有在国区发布过应用的同学应该知道拉起这个界面是不被甲方允许的。这篇文章总结了在iOS13下的语音播报迁移方案以及一些需要注意的问题。目前微信的7.0.10版本已经带上了这部分的特性。
本文主要介绍了iOS推送过程中可能遇到的坑,包括推送证书配置错误、推送权限未关闭或未正确关闭、设备token获取失败或发送给XG服务器的姿势不正确等问题。同时,也提供了推送诊断工具以帮助开发者排查推送问题。
苹果APNs(英文全称:Apple Push Notification Service)
就在刚刚,苹果发布了最新的iPhone7。一同发布的还有“史上最好”的iOS10系统。 iOS10将于9月13日问世。苹果CEO库克表示,iOS10将成为苹果史上最大的OS系统更新。 1. 你可以从锁
在发布iOS应用时,需要创建APP IDs。这个过程很重要,因为整个上架流程都需要使用APP IDs进行关联。如果你之前在iOS真机调试时已经创建了APP IDs,那么不需要重新创建,可以直接使用之前的APP IDs。
我们都知道开发iOS应用是少不了苹果证书的,对于一个新手来说,这个是比较头疼的是,毕竟真机测试,发布蒲公英测试,苹果提供的内测testflight,上传到app-store都要跟苹果证书打交道,上面这些步骤最好就是自己走一遍,不然你对苹果的开发证书的制作流程还是会一头雾水,其实说到底就是证书对应测试环境和发布环境,配置证书也是对应测试环境和发布环境,然后你需要创建一个app ID去把证书和配置文件联系起来。
iOS从07年第一代iPhone发布时的iPhone OS,已发展到今天的iOS10,这些年来,iOS从最初的一个简单、粗糙的ROM,发展成现在手机ROM中体验标杆的操作系统。设计风格走过了拟物化,扁平化,今年已发布的iOS10,设计风格也开始偏向卡片式风格,随着新的交互方式3D Touch的加入,开始脱离单调的扁平化设计,卡片式风格让设计语言更加符合用户的操作认知(卡片式的内容,对人有更强的按压操作暗示)。 iOS10锁屏Widget界面 手机友商的跟进 苹果的设计,给大家的印象,总能精准的发现用户的痛点
Novu 是一个开源的通知基础设施项目,它提供了统一的 API 来通过多个渠道发送通知,包括应用内、推送、电子邮件、短信和聊天。主要功能有:
V免签是一套基于Thinkphp5.1+mysql的免签支付程序,主要包括以下功能: 收款可以马上到账,不进入第三方账户收款更安全。 提供开发文档简单开发接入。 使用超简单API提供统一API实现集合回调。 免费使用、全开源代码,没有后门风险。 支持监控店员收款信息,使用支付宝微信小号/模拟器挂机,方便IOS用户。 免ROOT,免XP框架,无需修改支付宝/微信客户端,防封更安全。 V免签只针对个人开发者的调试和测试。请不要将其用于非法目的。商业使用请申请官方商家接口。 演示地址:https://pay.6la.cn/houtai 测试支付地址:https://pay.6la.cn/SDK/ 对接方式:易支付(程序自带易支付接口都可以对接) 里面有自带SDK文件,方便对接
概念相关 1.什么是远程推送通知? 顾名思义,就是从远程服务器推送给客户端的通知(需要联网) 远程推送服务,又称为APNs(Apple Push Notification Services) 2.为什么需要远程推送通知? 传统获取数据的局限性:只要用户关闭了app,就无法跟app的服务器沟通,无法从服务器上获得最新的数据内容 远程推送通知可以解决以上问题:不管用户打开还是关闭app,只要联网了,都能接收到服务器推送的远程通知 3.所有的苹果设备,在联网状态下,都会与苹果的服务器建立长连接 什么是长连接?
前台时重启应用调用了applicationWillEnterForeground:
先说说项目情况:使用phonegap创建的ios项目,然后在使用html + css开发网页中又使用了一个框架Framework7(Framework7是一个构建仿原生ios和android应用的框架)。造成把网站打包成app之后,只有一个入口主页面(假设该主页面为index.html), 然后在index.html页面引用所有要用的css和js。其他html页面只有部分html标签,不引用css和js, 其他html页面的展示都是通过主页面index.html的链接进行跳转到那里!
消息相关 消息推送客户端 SGPushDemo - 消息推送客户端 Orbiter - 消息推送客户端:iOS推送通知注册。 PushDemo - 客户端消息接收消息代码,IOS开发之---- IOS8推送消息注册 ,分分钟搞定IOS远程消息推送。 消息推送服务端 javapns源代码 - 消息推送的java服务端代码,注意:DeviceToken中间不能有空格。 pushMeBaby - Mac端消息推送端代码,注意:DeviceToken中间要有空格。 通知相关 JSQNotif
领取专属 10元无门槛券
手把手带您无忧上云