从0到1通知

有关在您的应用中实现出色的通知系统的设计建议以及能够做到这一点的基本设置。

当决定某个功能具有重要的意义(即通知功能)时,您必须始终记住为什么这样做甚至可以提供提示,但是提示是什么,而提示信息何时会停止,请想一想,您拥有哪些应用程序真是了不起经验? 看看您为什么这样想,做些引起您注意的事情,相信自己的直觉,并想一想您不想在通知中知道的内容。

重要的是要记住您要添加的任何功能中的新增功能,因此请不要忘记阅读有关上次更新中已添加功能的文章。

设计通知– WWDC 2018 –视频– Apple Developer
精心设计的通知是将及时信息传达给他们会发现的人们的有力方法…… developer.apple.com 用户通知中的新增功能– WWDC 2018 –视频– Apple Developer
通过显示… developer.apple.com ,本地通知和推送通知使您的应用程序可以及时向用户提供相关的相关信息

甚至能够在应用程序中获得通知的第一步都是要经过很长的过程才能获得通知,这分为两个挑战,一个是要从苹果公司获得适当的证书(假设您拥有开发者帐户),第二个是下载NWPusher,这是一个开源项目,可让您测试通知。

*发出通知的步骤之所以这么多,是因为出于安全原因,并且要测试通知,您需要将iPhone连接到笔记本电脑,模拟器无法为您提供帮助。

首先,创建一个项目,然后转到主根目录,即带有蓝色文档图标的文件,您将在项目上,在TARGETS上单击您的项目名称,然后在上部方案中选择功能,滚动直到您会找到“推送通知”并将其打开。

Apple开发人员网页https://developer.apple.com/。

在开发者的网页上登录您的帐户,

在开发人员的网页上,您会在左侧找到一个名为“标识符”的选项,然后单击“应用程序ID”,滚动直到找到应显示为可配置的“推送通知”,在底部有一个“编辑”按钮,然后单击在那里。

根据您的需求选择开发或生产证书,如果要测试并学习开发证书,请创建证书,是时候进行涉及“钥匙串访问”的下一步了,建议字总是使用快捷方式,按“命令”和“ f”,然后开始键入“钥匙串访问”,直到该选项自动完成。

在那里,您应该单击“钥匙串访问”上苹果旁边的右上角,单击“证书助手”和“从证书颁发机构请求证书”。

完成所有步骤之后,继续前进,

在此屏幕上,选择“保存到磁盘”

将其下载并放置在项目所在的文件中,使用NWPusher时此证书将非常有用,因为要具有此功能,您需要证书并在手机上对其进行测试。

这是上面的“钥匙串访问”。

这是到开源项目NWPusher的链接:

面条/ NWPusher
OS X和iOS应用程序和框架可与Apple推送通知服务(APN)一起使用–oodlewerk / NWPusher github.com

使用此项目的方法有很多。“ noodlewerk”在他的github项目网页上解释了使用此软件的所有方法,都做得很棒,别忘了给它加注星标。

在这里,我将使用brew安装项目。

在终端上,键入“ brew install”,然后“ brew cask install pusher”。

现在该回到您的“钥匙串访问”了,

单击“推送证书”,然后选择“导出’Apple Development …’”,然后尝试选择一个简单的密码。

现在应该完成所有基本设置。

恭喜您完成了第一部分,让我们继续前进以获得基本通知。

现在是时候编写代码了! 喜欢实际写点东西。

在有人已接受您的通知请求的情况下,这两个功能将被调用以给您令牌,或者如果他们没有将其通知您。

  func application(_ application:UIApplication,didRegisterForRemoteNotificationsWithDeviceToken deviceToken:Data){ 
  let deviceTokenString = deviceToken.reduce(“”,{$ 0 + String(format:“%02X”,$ 1)}) 
  print(“ APNs设备令牌:\(deviceTokenString)”) 
  } 
  func应用程序(_应用程序:_UIApplication,didFailToRegisterForRemoteNotificationsWithError错误:错误){ 
 打印(“ APNs注册失败:\(错误)”) 
  } 

但是如果不进行配置,它们怎么会被调用,所以让我们配置一下在您启动应用程序以获取通知时将请求许可的功能,

  func registerForPushNotifications(){ 
  UNUserNotificationCenter.current()。delegate =(自身为UNUserNotificationCenterDelegate) 
  UNUserNotificationCenter.current()。requestAuthorization(选项:[。alert,.sound,.badge]){ 
  (允许,错误)在 
  print(“已授予权限:\(已授予)”) 
  // 1.检查是否授予权限 
 授予其他警卫{返回} 
  // 2.尝试在主线程上注册远程通知 
  DispatchQueue.main.async { 
  UIApplication.shared.registerForRemoteNotifications() 
  } 
  } 
  } 

在这里,您正在调用所需的委托,以便能够显示启动应用程序时看到的请求,并请求获得许可的通知(如果授予了许可),最后将调用函数registerForRemoteNotifications(),使两者调用先前的功能以制作必要的APN密钥。

现在该连接手机并在其上运行该应用程序了。

如果它确实在您的控制台中起作用,您将找到APN令牌。

现在打开推杆,如果您已经完成所有前面的步骤,请在名称下方的框中找到您的证书,然后在下方粘贴您的APN令牌。

上面的json文件正是您对先前功能之一所要求的授权。

现在推送,您应该会收到通知!