经过对百度&友盟&极光&AVOS这几家的iOS推送的文档研读,demo试用,综合上述四者整理出一份简洁的功能需求要点。
添加应用页面
页面上应有上传p12证书和设置密码的功能。(分别为开发环境和正式环境)
AVOS和百度要求证书必须不设密码,但因为使用到的开源库的要求,还是应该要求设置密码。
其中友盟支持的证书格式为pem和p12两种,其他都只支持p12,为简单起见我们只支持p12。
页面上应该有链接来提示用户如何生成证书,这样显得比较友好。
应用设置&详情页面
展示了应用的一些数据,如AppKey,创建时间等。并能重新上传证书和设置密码。以及各平台的一些元数据,各平台的元数据是否在同一个页面展示有待商榷,下面只关注iOS的元数据。
Bundle ID(iOS) :这是从p12证书解析得到的,展示给用户可以提示用户设置好对应的Bundle ID。
APNS推送环境(iOS)的状态:
开发环境: ${status}
生产环境: ${status}
其中status的取值范围是:未上传,已验证,验证失败。
上传的证书很有可能是不符合要求的,比如:
- 当前上传的p12证书密码输入有误;
- 证书导出的时候展开了证书,把个人私钥导了出来,导证书的时候请不要展开证书;
- 当前上传的证书环境不对,如:在上传开发证书的地方上传了生产证书;
- 该证书已在本账号的其它应用使用;
- 现上传的证书与当前应用已上传成功的证书的bundle id不一致。
验证的流程是使用该证书来尝试连接APNS服务,如果连接成功表示通过验证。
其中已验证或者验证失败的情况应该出现一个刷新按钮,可通过点击该按钮来尝试重新验证。
最好能给用户准确的错误提示,显得更有诚意,因为一开始在证书方面难免出错。
最后有一个保存按钮,点击则更新数据。
发送APNS推送页面
此页面用来发送推送消息。主要元素如下:
- 文本框:推送文本,alert字段的内容。AVOS支持json格式的编辑模式。
- 消息剩余字节提示:因为APNS消息有长度限制,限制为256字节,如果编辑发送消息时有任何的对于消息的改动,都要刷新这个提示,如果大于限制,则不允许发送,另外判断长度需采用UTF-8编码。
- 所见即所得的slider:跟Android版本类似,具体可参考极光的做法。
- 推送环境:一组check box,分为开发环境和正式环境,用来选择向哪个环境发送推送。极光还有Android和WinPhone选项,是否把发送页面整合到一起还有待商榷。
- 推送对象:分为广播,标签,指定用户(device token)。此外极光和友盟还支持设备别名(Alias),极光支持Registration ID,如有必要后续也可加上。
- 发送时间:为分即使和定时,不赘述。
可选设置 - 过期时间:单位待定,指定推送的过期时间。如果给关机或者断掉网络的设备推送,那么APNS会把消息暂存起来,如果消息过期,APNS则丢弃,如果有多条离线消息,则APNS会保存最新的一条。此外最新协议可设置消息的优先级,APNS使用这个优先级来判断应该保留哪一条离线推送而不是简单的保存最后推送的那条,不过现在没有竞品支持这一选项。
- sound:设置提示音效。
- badge:设置app icon上的红色数字。另外极光支持badge+1功能,详情参考:http://blog.jpush.cn/ios_apns_badge_plus/,另外AVOS也支持这个功能,后续有必要也可实现。
- slient_push & content-available(可选):只有极光支持,详情参考:http://docs.jpush.cn/display/dev/iOS+7+Background+Remote+Notification。
- 附加:用来设置用户自定义的key&value值,用来实现用户自己的业务逻辑,多添加多个。
发送应用内消息推送页面(可选)
目前只有极光实现了应用内消息推送,这是为了弥补APNS的局限,这里也一并介绍,后续考虑实现。
应用内发送的优点有以下几点:
- 突破256字节的限制,不过也有迂回的方式,比如AVOS就支持推送时顺便上传个小文件,把这个小文件的下载地址推送给用户进行后续处理。
- 支持更多的离线消息,APNS只支持1条。
- 推送速度,特别是网络部分也许更快更稳定。因为可以自己定义。
另外以下摘自极光文档:
应用内消息
应用内消息:为了保证推送的可靠性,JPush SDK 提供了应用内消息,当应用打开后可以直接从JPush server 获取推送消息。此消息不经过 APNS 服务器。
APNs消息与应用内消息对比
如果只需要发送通知,则可以忽略应用内消息的处理。对于两种消息的代码处理可以参考API部分的描述。
推送原则 |
每次推送都会发给APNS 服务器发送经由APNS服务器下发到手机。 |
每次推送都会尝试发送,如果用户在线则立即发送。 |
离线消息 | 离线消息由APNS服务器缓存按照apple的逻辑处理。 | 用户不在线JPush server 会保存离线消息。离线消息保留5条。 |
是否有APNS生产和开发环境区别。 |
是,只有证书和应用环境匹配才可以收到。 |
否,应用内消息与iOS 环境这是状态无关。 |
接收方式 |
应用退出,后台或者是打开是都会收到APNS |
需要应用打并与jpush 建立连接,然后接收离线消息和在线消息。 |
展示效果 |
如果应用后台或退出,会以系统通知方式展现。 如果应用处于打开状态,不展示。 |
默认不展示。 |
处理函数 |
didReceiveRemoteNotification |
networkDidReceiveMessage |
发送页面跟发送APNS消息相比有以下不同之处,其他地方都一样:
- 应用内消息不会自动触发UI方面的提示,所以没有所见即所得的slider,slient_push & content-available,sound和badge。
- 没有开发和生产环境之分,所以没有推送环境。
统计 & 定时消息 & 历史消息页面
统计页面大同小异,这里不赘述。
相关推荐
在iOS应用开发中,为了实现实时的消息推送功能,通常会使用Apple Push Notification Service (APNS)。在Java服务端实现iOS消息推送...在生产环境中,可能会采用更复杂的消息队列和服务架构来处理大量设备的推送需求。
以上就是使用Java实现iOS推送功能的基本流程和技术要点。通过理解这些步骤,你可以根据自己的需求定制推送服务,例如增加消息队列、日志记录、错误重试机制等。同时,确保遵循Apple的推送策略,避免被封禁。
- iOS推送通知服务(APNs)需要使用Apple的推送证书,分为开发环境和生产环境两种。确保在极光推送后台正确配置对应的推送证书,以避免推送消息无法送达。 3. **推送消息格式**: - 极光推送支持自定义消息体,...
- **推送消息的用户相关性**:只向手机上最后一个登录用户发送推送消息。 - **语言和区域设置**:测试不同语言和区域设置对APP的影响。 - **性能和内存管理**:检查APP的性能和内存消耗,防止内存泄漏或卡顿。 -...
此外,还可以尝试使用推送通知来提醒用户关于地点的更新或活动。 3. **制作一个游戏**:虽然iOS 4的游戏中心功能相对初级,但依然可以通过编写简单的游戏来熟悉多任务处理机制以及动画效果的实现方法。 #### 结语 ...
这里我们将深入探讨如何在iOS应用中实现这一功能,以及相关的技术要点。 首先,我们需要理解iOS系统的图标机制。在iOS设备上,App的图标通常是在应用安装时由系统固定,并存储在SpringBoard中,用户无法直接修改。...
7. **其他接口**:包括mpush接口、图灵接口等,用于消息推送、AI交互和语音合成。 8. **运行环境和前提条件**:开发者需要了解支持的iOS版本、必要的系统权限以及开发环境的配置。 9. **不同模式的区分**:标准...
4. APNs推送:为了实现消息的实时推送,开发者可能集成Apple Push Notification service (APNs),确保用户即使在应用后台也能收到新消息通知。 5. 安全性:开发者可能会运用加密技术保护用户的通信内容,防止数据...
在实际开发中,可能还需要结合其他技术,如后台推送通知(APNs)、数据库同步等,以实现更复杂的即时通讯功能。同时,服务器端也需要实现WebSocket接口,以接收和响应客户端的请求。总的来说,iOS WebSocket即时通讯...
- **推送测试**:集成完成后,可以通过编写测试用例,模拟发送不同类型的推送消息,如文本、图片、自定义消息等,以验证推送功能的正确性。 2. **MPush关键功能**: - **消息推送**:MPush支持广播推送和定向推送...
这需要用户在应用内执行某些操作,如点击特定按钮或接收到推送通知,然后应用下载新图标并覆盖本地的旧图标。 3. **小部件(Widget)**:如果应用支持小部件,可以在小部件中显示特定的图标,但这不会改变主应用...
奇舞周刊,作为国内知名的IT技术分享平台,定期发布各类技术资讯和实战经验,本期我们将深入探讨Weekly75中关于React-Native在iOS开发中的实践与技术要点。 1. **React-Native简介** React-Native基于React的组件...
关键的一点是,系统应具备与异构系统集成的能力,支持单点登录和消息统一推送,确保数据和服务的连贯性。 在系统要求方面,强调了业务流程的灵活性和自定义性。系统应能根据实际需求组合任意业务流程,允许流程的...
其中,一个常见的需求就是在App处于后台运行甚至被用户手动关闭(即被杀死)的情况下,依然能够接收到消息推送并进行语音播报。这对于新闻类应用、社交软件或是导航应用尤为重要,因为这直接影响到用户体验及信息的...
- **消息推送:** 接收来自服务器端的信息推送,包括但不限于小区公告、报警通知等。 - **警讯处理:** 当检测到异常情况(如门铃被按响)时,应用会向用户发送闪烁提示,支持即时查看现场情况并进行对讲或开锁操作。 ...
- **整体流程图**:包括用户登录、浏览社区内容、发布帖子、评论互动、搜索功能、推送通知等关键步骤,这些都应在流程图中详细表示,以便开发者理解整体操作流程。 - **功能模块**:可以细分为以下几个部分: - ...
7. 通知与推送:集成Apple Push Notification服务,实现实时消息推送。 此外,通过分析源码,我们还可以了解到如何集成第三方库,如使用CocoaPods或Carthage进行依赖管理,以及如何遵循Apple的Human Interface ...