位置: 编程技术 - 正文

iOS10推送通知开发教程(苹果系统推送通知)

编辑:rootadmin

推荐整理分享iOS10推送通知开发教程(苹果系统推送通知),希望有所帮助,仅作参考,欢迎阅读内容。

文章相关热门搜索词:苹果推送通知没有声音,iphone推送通知费电吗,iphone推送通知,苹果推送通知会增加耗电吗,苹果手机开启推送,苹果推送通知会增加耗电吗,苹果手机开启推送,iphone推送通知,内容如对您有帮助,希望把文章链接给更多的朋友!

虽然通知经常被过度使用,但是通知确实是一种获得用户关注和通知他们需要更新或行动的有效方式。iOS 有了新的通知,如新消息、商业信息和时间表的变化。在本教程中,我将向你展示如何使用通知在你的iOS应用程序,并且显示iOS 引入了新特性。开发iOS 推送通知你需要最新版本的Xcode,Xcode 8测试版,这些目前都是可下载的,在下载页面。

你可以去Github下载本教程的整个工程。

开始

在Xcode中启用推送通知是很容易的,但你需要几个步骤。

创建一个新的工程,给它起一个唯一的Bundle Identifier.

当您已经创建了project,去Project Settings页选择Capabilities栏。打开推送通知,如下所示。

注意: 如果你是苹果的付费开发者成员,你就能看到推送通知功能这一栏。

去Developer Account这一栏,从左侧的菜单栏中选择证书,IDs,和描述文件,然后选择App IDs在Identifiers栏中。找到已经创建的App的名称,在服务列表中选中。注意,有两个可配置状态的推送通知。

不要关闭这个网页,你很快就会回来的。

发送通知

在本文中,我将使用Pusher发送推送通知。您还可以使用其他的解决方案如Houston。无论哪种方式,发送一个通知,你都需要一个证书。

去创建一个证书,打开Keychain Access,从证书认证菜单中选择Keychain Access -> Certificate Assistant -> Request a Certificate。

填写表单并单击Continue。确保你选择保存到了磁盘。

返回到开发者账户的网页。你可以为你的App IDs生成开发(调试)证书或发布证书。

之后在选择右侧的申请,在底部,单击编辑。在推送通知部分,单击创建开发(调试)证书。

在需要时,从Keychain,继续上传生成证书请求。

现在你已经创建了证书,可以下载它。打开下载的文件安装它。

下载并运行Pusher。这个程序的顶部需要填入一个推送的证书。为它位于你的钥匙链,OS X将询问是否允许Pusher访问证书。

第二个字段需要device token,你会在下一步中得打它。

收到通知

是时候敲代码了。收到通知的设备必须注册到苹果推送通知服务(APNS)。在应用启动的时候你要发送一个唯一的token。

打开AppDelegate.swift然后添加如下方法。

iOS10推送通知开发教程(苹果系统推送通知)

注意:该代码是基于Swift3.0。语法可能看起来不同于你之前使用过的。

我之后会解释,在这个设置中你会收到指定的通知类型。调用这个方法在应用程序启动的的文件里。

此时,应用程序将自动弹出一个Alert,询问用户是否要收到该通知。

通知必须被注册,才能发送,而是否接受通知则需要用户批准。UIApplicationDelegate方法处理响应。

首先检查用户授予权限,然后调用该方法注册远程通知。当请求完成后者将调用另一个代理方法。这个方法响应包含一个device token,你可以打印进行调试。在发送推送通知来识别设备需要这个device token。

如果出现错误,调用下面的方法。

注意:重要的是在应用程序启动时要调用registerUserNotificationSettings,因为用户可以改变权限的设置。同样registerForRemoteNotifications也是很重要的,因为有些场景device token可以改变那么通知将不再发送。

到目前为止,这足以让你收到一个简单的通知。

通知内容

通过不同的通知内容,有不同的方式来使一个App来收到不同类型的通知,这些通知内容包括应用程序通知用户的信息,或者用户自定义的信息。

给用户发送通知,使用JSON格式,这个格式本身包含一个字典,对应aps的key。在这第二个字典你指定载内容和key。

最常见的是:

向用户显示的通知消息。这是一个简单的字符串,或一个字典key和标题一样,正文等等。接收到通知的声音。它可以是一个定制的声音,或一个系统的声音。应用图标右上角的角标个数。将其设置为0,消除角标。有效的内容。使用值1发送一个无声的通知给用户。它不会播放任何声音,或任何角标设置,但是当通知被唤醒,应用将与服务器进行沟通。

本教程的一个简单的通知内容:

应用程序的生命周期

拷贝device token粘贴在Pusher的token部分,拷贝这个JSON对象在Pusherd的payload部分。

试着发送第一个通知。如果设备的屏幕被锁定,它将看起来如下,但什么都不会发生,当用户点击了这个通知视图。

接受通知,你需要添加新的方法:

这将返回收到的通知标题和正文,如果结构是相同的。

这个方法将在应用程序主要视图UITableView内添加一行(参见ViewController的完整项目代码)。

我测试了三个案例的推送通知:

当应用关闭时如果用户打开应用程序的通知,调用didFinishLaunchingWithOptions方法更新,如下:

假设用户已经看过了这个通知,那么角标就被清除了。然后,检查应用程序是从图标打开还是通过通知打开的。在第一种情况下,调用registerPushNotifications()方法然后继续之前的流程。如果应用是通过打开通知的方式运行,则调用自定义notificationReceived方法来添加行。

当应用运行在前台时如果用户正在使用应用程序,这意味着应用程序在前台,接受通知的方法如下。在这个通知的方法中加入对tableView的处理:

注意:在这种情况下,通知将不会发出声音。

当应用运行在后台时在这种情况下,我添加了一个方法来清除角标数目。通知的处理和应用程序在前台的处理是一样的。

最后,这个列表中有三行来自通知的内容。

最后

随着iOS 的通知,开发者有了更多比之前有趣的机会和不曾有的交互权限。我希望本教程中关于如何使用通知能帮助你更好的理解通知是如何工作的。

本文已被整理到了《iOS推送教程》,欢迎大家学习阅读。

标签: 苹果系统推送通知

本文链接地址:https://www.jiuchutong.com/biancheng/301910.html 转载请保留说明!

上一篇:php微信公众账号开发之五个坑(二)(php微信公众号开源框架)

下一篇:php支付宝在线支付接口开发教程(php支付宝现实支付要收费吗)

  • 免税进账转出怎么填表
  • 企业所得税减免所得税额怎么算
  • 年应税销售额是利润表中的营业收入吗
  • 高新企业奖励金怎么领
  • 贴现法付息的有效年利率
  • 负数发票可以作废不
  • 应纳税所得额为什么要减去60000
  • 股东以实物出资需要交税吗
  • 企业开发票的人员要经过培训吗?
  • 建设单位增值税抵扣
  • 代扣代缴企业所得税账务处理
  • 浅谈收入与成本的关系
  • 红字冲回上月收入
  • 建筑劳务公司开发票
  • 开票含税和不含税哪个划算
  • 库存现金清查短款会计分录
  • 丧失控制权合并报表内部交易抵消
  • 购入材料未入库
  • 增值税发票普票和专票有什么区别
  • 机械租赁有什么机械
  • 企业合并怎么处理
  • 固定资产转入清理记账凭证
  • 政府会计的记账基础是什么?
  • 给员工支付的房租怎么算
  • 房地产企业的沙盘模型制作费会计处理
  • 紧急重新启动
  • 腾讯电脑管家中的软件搬家
  • 周转材料摊销是什么科目
  • 质量事故责任书
  • 如何修改家里的wifi密码
  • wordpress portfolio
  • 非货币性资产交换和债务重组的区别
  • 修改gradle版本
  • 委托加工应税消费品以委托人为消费税的纳税义务人
  • 闲置的固定电话机怎么改装
  • faster rcnn详解
  • cpu power management设置
  • php改html
  • ❤️国庆假期快到了,用python写个倒计时程序,助你熬到假期!❤️
  • 工会经费计税依据比例
  • 技术开发免征增值税怎么开票
  • 终止劳动合同赔偿金最晚多久发放
  • 工业企业缴纳增值税吗
  • 投资收益账户属于所有者权益类吗
  • 计提费用收到发票怎么做
  • 消费税的应纳税额的计算
  • 公司使用pos机
  • 应收账款多记账怎么做调整分录
  • 资本化支出计入什么科目
  • 产品包装设计费属什么费用
  • 公司申报的工资和实际发放的工资不一样怎么办
  • 主营业务成本工资计提吗
  • 开发票货款未公对公转如何做账?
  • 哪些计入研发费用
  • 行政单位工会经费
  • 园林绿化公司的税率是多少
  • 外商投资企业和外商独资企业
  • mysql正整数类型
  • 压缩sql数据库
  • win10下面任务栏
  • vista正版怎么升级win7
  • /wlan direct
  • win8系统出现蓝屏怎样处理
  • ubuntu系统安装SSH服务
  • 如何解决笔记本电脑温度过高 蓝屏
  • 进程关不掉怎么解决
  • 因以下文件的损坏或者丢失,windows无法启动hal.dll
  • win8使用体验
  • linux免安装软件
  • opengl 生成图片
  • jquery实现分页功能
  • nodejs代码规范
  • 局域网远程开机与远程唤醒
  • Python中模块和包的区别
  • linux中的shell命令
  • unity 3d ui
  • python多线程技术
  • 政府发放奖金给企业怎么入账
  • 12366的客服辛苦吗
  • 应聘保险公司需要了解什么
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

    网站地图: 企业信息 工商信息 财税知识 网络常识 编程技术

    友情链接: 武汉网站建设