Tag: 推送通知

Cordova에서Firebase이용하여推送通知base

在iOS上推送通知,在Cordova上下载Firebase插件,再在推送上下载。 APN密钥생성과Firebase활용방법들은科尔多瓦되는이내용이내용이내용이읽어이읽어보읽어보읽어다。 Apple推送通知服务SSL密钥密钥방식으이다。 방식의장장간간간하하하하하않아도다。다。 Apple开发人员计划의证书,标识符和配置文件메뉴로들어간다。 。이지에서사이드바이나올이다。 密钥를과정은다。 姓名,服务名称和服务名称。 继续하면确认화면으로넘어간다。 。기서된다。 화면에서화면에서p8 8다。 여기가다시가바로바로바로바。 고리고ID또한로고다。 密码,p8推送,p8密钥,密钥ID,团队ID供应。 团队ID는苹果开发人员计划成员资格에서이가능하다。 이제Key끝났다。 Firebase차례이다。 Firebase的서버와a쓰쓰서버와서버와a a a BaaS(后端即服务)。 base base Firebase능을다이다。 보안DB DB API API API Mo Mo Mo Mo通知외에도AdMob을광고로있다있다。 Fire로디어이디어가빠르게때때Fire를를를Fire Fire Fire Fire Fire Fire Fire Fire Fire Fire Fire Fire Fire Fire Fire Fire Fire Fire。Fire 서비스볼륨이크지무료로능을로능을기장점이다。 지이하는推서버도Firebase를단시간에스트까스트까스트까!! 在Firebase上进行下载。 […]

Firebase云消息传递教程

介绍 本文的重点不是要教您如何从头开始制作Firebase应用,其目的是要揭开神秘面纱,并说明设置Firebase Cloud Messages的过程有多么简单。 当我第一次阅读文档时,它看起来相当艰巨,并且似乎要花很多时间才能完成工作,而实际上我花了不到20分钟的时间就可以开始工作。 我会稍微介绍一下客户端的设置,但由于文档非常善于解释这一点,因此我并没有太多涉及,并且我的复制粘贴毫无意义。 注意 Firebase Cloud Messages是新的。 Google Cloud Messages不是。 我以前从未看过GCM,所以我不知道区别/相似之处。 如果本文/指南中的内容有误,请在下面的评论中对我进行纠正。 我讨厌别人卡住,因为我犯了一个错误。 本指南非常简单,不适合生产环境。 只是为了说明如何设置简单的FCM服务。 先决条件 显然,您需要一个正常运行的Firebase项目。 您还需要了解以下内容: 节点JS Java脚本 基本的HTTP知识 客户端实现(我是iOS开发人员,因此我的示例将在iOS中完成) 能够在实际设备上运行示例应用程序 客户端和Firebase设置说明 虽然Firebase文档非常出色,但我建议您按照它们进行操作,以在客户端进行设置,但我会提到两点。 除了客户端安装指南告诉您的内容外,您的应用还需要注册推送通知并请求用户许可,在您的应用委托中,您可以执行以下操作: func应用程序(应用程序:UIApplication,didFinishLaunchingWithOptions launchOptions:[NSObject:AnyObject]?)-> Bool { 让notificationSettings = UIUserNotificationSettings(forTypes:[。Badge,.Sound,.Alert],类别:nil) application.registerUserNotificationSettings(notificationSettings) 返回真 } func应用程序(应用程序:UIApplication,didFailToRegisterForRemoteNotificationsWithError错误:NSError){ 打印(错误) } func应用程序(应用程序:UIApplication,didReceiveRemoteNotification userInfo:[NSObject:AnyObject]){ 打印(userInfo) } func应用程序(应用程序:UIApplication,didRegisterUserNotificationSettings notificationSettings:UIUserNotificationSettings){ 如果notificationSettings.types!=。无{ application.registerForRemoteNotifications() } } 您显然可以跳过print()语句,但是在调试时提供了很好的信息。 另外,如果您打算在要在后台获取的通知中包括有效负载,则应在.plist中包括它 我在文档中错过的另一件事是,在创建Provisioning […]

iOS 10远程通知

在iOS 10中,通知发生了很大变化。 远程和本地通知方法是统一的。 您可以使用通知扩展名添加图像之类的媒体。 在本文中,我将讨论如何设置通知类型和注册远程通知。 在下一部分中,我将向您展示如何处理远程通知和可操作的通知。 远程通知过程 首先,了解如何使用远程通知会很有帮助。 远程通知涉及以下步骤: 配置您的通知类型并注册远程通知 注册到APN的远程通知 将设备令牌注册到服务器(推送通知提供程序) 在提供商和APN之间进行通信 处理远程通知 步骤3和4是服务器端过程。 步骤1.配置通知类型并注册远程通知 1)配置通知类型 您需要请求授权才能接收通知。 在此阶段,您可以设置通知类型,例如警报,声音和标志。 在iOS 9及以下版本中 使用`registerUserNotificationSettings`方法 在iOS 10中 使用`requestAuthorization(options:completionHandler:)`方法。 func requestAuthorization(options:UNAuthorizationOptions = [], completeHandler:@转义(Bool,Error?)-> Void) 选项描述您要提供的通知类型。 completeHandler具有两个参数: Grant和error –如果未发生错误,则错误为nil 。 – 授予的返回true或false取决于以下情况。 这不是我期望的结果。 为什么? 授予所请求选项的授权时,此参数的值为* true *。 当一个或多个选项的授权被拒绝时,该值为* false *。 在Apple文档中,他们谈论的是请求的选项,而不是通知设置。 但是实际的测试结果与上面的列表不同。 即使用户更改了授权选项(例如在设置应用中禁用警报),它也没有返回“ false”值。 首次启动应用程序时,“授权请求”对话框仅出现一次。 因此,我建议您将`.alert`选项设置为默认选项。如果您从`registerUserNotificationSettings`或`requestAuthorization(options:completionHandler:)`中省略了该选项,则无法在设置应用程序中为您的应用程序通知找到警报选项。 2)注册远程通知 调用registerForRemoteNotifications()方法。 如果注册成功,它将自动调用` […]

OneSignal的离子推送通知

4.从目标的“链接二进制文件与库”中删除pods库。 5.将项目的“配置”设置为“无”。 选择项目(不是目标),然后点击“信息”并将其设置为“无”。 运行Pod安装: 在您的离子应用程序平台下的ios文件夹中运行以下命令。 /platforms/ios/ 吊舱安装 运行离子项目: 离子科尔多瓦运行ios –prod 该项目将像魅力一样运行。 然后您将获得带有onesignal的可运行离子应用程序。 只要有时间,我一定会更新此信息。 这些只是为Ionic 2/3应用程序配置时解决带有IOS的onesignal-cordova-plugin的最新版本的最小步骤。

使用Firebase在iOS中推送通知

这适用于Firebase 4.0.4。 如果您想测试推送通知,可以使用我的应用程序PushNotifications 准备推送通知证书 转到会员中心-> Certificates -> Production 证书 现在,您可以在沙箱和生产环境中使用1个证书 授权键 如果您想使用身份验证密钥,请阅读提供商身份验证令牌 配置推送通知 转到Firebase控制台-> Settings -> Project Settings -> Cloud Messaging -> iOS app configuration 如果您使用证书,则两个字段仅使用1个Apple Push Notification service SSL 如果您使用身份验证密钥,请填写APNS auth key 新增广告连播 在您的Podfile ,声明 pod“ Firebase / Core” pod“ Firebase /消息传递” 禁用应用程序委托 在Firebase Cloud Messaging中读取方法混乱 您应该拒绝打扰。 在您的Info.plist执行此操作 FirebaseAppDelegateProxyEnabled 进一步了解Messaging.messaging().apnsToken 此属性用于设置应用程序委托接收的APNS令牌。 FIRMessaging使用方法转换以确保自动设置APNS令牌。 但是,如果通过 在应用程序的Info.plist中将 […]

使用Vapor 3支持推送通知

TLDR; 在Swift中执行cURL命令 几周前,我决定学习Vapor 3框架。 我希望能够为将来的项目开发后端API,而不必依赖我的goto Parse Server。 这是一个快速的入门指南,向您展示它的可能! 所有代码都在底部链接的GitHub存储库中提供。 为了获得有关该框架的经验并查看一些用例,我从Ray Wenderlich的网站购买了“带有Vapor的Server Side Swift”电子书。 我通读了这本书,以学习基础知识。 下一步是开始尝试将以前使用Parse Server的功能移植到Vapor 3应用程序。 当实现推送通知时,我遇到了一个障碍。 Apple的APN要求使用HTTP / 2建立连接,但是SwiftNIO(Vapor 3的核心网络依存关系)尚不支持HTTP / 2协议。 我以为我可能必须使用某些第三方解决方案,但由于我不想要这种依赖关系。 我决定仔细阅读Apple的开发人员文档(APNs-Apple Developer),以了解使用cURL连接APN所需的条件。 首先,您需要一个付费的Apple Developer帐户和一个为其配置了推送通知的演示应用程序。 您将需要运行演示应用程序并获取设备令牌,该令牌将在以后发送以测试APN。 HTTP / 2 cURL请求将需要证书。 第一步是从Apple开发人员帐户生成所需的证书。 由于已经有数个教程,因此我将不介绍如何执行此操作。 .cer文件和.p12文件将需要合并。 为此,请遵循以下bash脚本: #!/ bin / bash #将.cer文件转换为.pem文件: openssl x509 -in aps_development.cer-通知der -out cert.pem #将私钥的.p12文件转换为.pem文件: openssl pkcs12 -nocerts -in aps_development.p12 […]

在iOS中使用Firebase Cloud Messaging进行推送通知

Firebase云消息传递(FCM) Cloud Messaging是Firebase的免费酷功能之一。 将推送通知从服务器发送到FCM很容易,它可以处理iOS,Android和Web的其余部分。 我将在本文中跳过设置。 您可以按照精心编写的设置指南,将Firebase添加到您的项目中。 您可以通过Firebase控制台或应用服务器连接到Firebase Cloud Messaging。 Firebase控制台非常简单,但这是手动工作。 我将在这篇文章中介绍应用服务器。 通过FCM发送通知的方式有三种 。 您可以将通知发送到一个设备或设备组或主题 。 我想向特定用户的所有设备发送通知,并且我不想存储令牌。 在这里,我将跳过仅将通知发送到一种设备的方式。 设备组也用于将一个用户的所有设备分组。 这样,您可以将通知发送到一个用户的所有设备。 因此,它们两个都需要存储令牌。 如果您需要将每个用户的消息发送到多个设备,Firebase建议使用设备组。 但是正如我所说,我不想存储令牌。 因此,我将只关注本文中的主题。 如果您更喜欢存储令牌并进行处理,则可以使用其他两种方式。 什么是主题 ? 主题基于发布/订阅模型。 每个设备可以订阅不同的主题。 服务器向主题发送请求。 FCM处理休息,所有订阅的设备都收到通知。 这样简单而强大的方法。 但是,作为每项服务,它都有优点和缺点。 主题未针对快速交付进行优化。 因此,发送通知和接收通知之间可能会有延迟。 主题针对吞吐量进行了优化。 现实生活场景 我们有一个微服务,当它接收到事件时会创建推送有效载荷。 我们可爱的推送程序不了解客户端设备,也没有任何存储空间。 当基础系统上发生新事件时,它将得到通知。 然后,它将通知发送到移动平台。 我们的推送程序将HTPP请求发送到FCM。 您可以在此处了解有关FCM的服务器实现的更多信息。 我们的基本请求结构如下: https://fcm.googleapis.com/fcm/send 内容类型:application / json 授权:key = SERVER_API_KEY { “ condition”:“主题中的“ condition1”和主题中的“ condition2””, […]

使用Phonegap Plugin Push 3.x和Meteor 1.7在iOS中启用推送通知功能

我们生活在一个拥有几乎所有内容的移动应用程序的世界中。 流星的惊人之处在于它允许将网络代码用于android和iOS应用。 我使用流星开发混合应用程序不到一年,但我还没有发现很多东西。 我发现给我带来困难的一个问题是,由于部署是自动化的,因此在XCode 9.x中为iOS自动启用了推送通知。 我正在使用raix:push@3.3.0在Android和iOS上发送推送通知。 它具有以下依赖性: 通过npm安装的phonegap-plugin-push@2.2.3(负责注册用于推送通知的应用程序) 作为cordova插件安装的cordova-plugin-device@1.1.6 现在,当您构建应用程序并看到项目内部功能时,默认情况下不会启用推送通知。 不用担心,我得到了你! 在流星项目的mobile-config.js中,编写以下代码: App.appendToConfig(` 开发 生产 `) 当您重建应用程序时,瞧! 现在默认情况下启用了推送通知! 注意 :您必须启用将推送通知配置添加到您的应用ID,这可以通过开发者的帐户通过编辑应用ID来完成。

iOS应用程序中的UNNotifications问题

我当时正在开发用于导航和跟踪解决方案的中等规模的iOS。 该应用程序是使用SWIFT 4中的XCode 9针对通用设备开发的。 问题背景: 该应用程序在收到一些远程通知后突然表现异常怪异。 由于此应用程序属于跟踪和导航类别,因此严重依赖于后台更新。 为此,我们使用MQTT,Firebase和APNS来进行通信,如果任何通信机制失败,应用程序将立即以零时间转移到其他更新机制。 当我们的项目进入回归测试阶段时,我们的另一种信息更新机制报告失败。 具有挑战性的解决方案: 经过大量的研发和深入研究该问题,我们认为该问题与远程通知没有直接联系。 苹果在iOS 10 SDK中的UNUserNotificationCenter中进行了一些更改。 Apple确实将远程通知和本地通知合并在一个框架“ UNUserNotificationCenter ”中。 因此,当应用程序运行时,它会处理“远程”通知,我们通过将消息通过本地通知委派给用户来通知用户。 通过广泛使用本地通知,iPhone SDK可以静默停止处理远程和本地通知。 在这一点上,我们的工程师具有多个方面来检测应用程序的故障并引起对实际问题的困惑,并将工程师转移到其他方面,例如后台任务处理,多线程,Web服务问题等。 但是实际的原因是是其文档中所写的违反Apple开发准则的行为 : “可以安排通知请求,以通过时间和位置通知用户。 有关更多信息,请参见UNNotificationTrigger。 调用-addNotificationRequest:将使用相同的标识符替换现有的通知请求。 标识符为现有交付通知的通知请求将为新的通知请求发出警报,并在触发时替换现有交付通知。 应用程序可以在任何时候调度的待处理通知请求的数量受到系统的限制 。” 实际上,这种趋向于权衡的业务逻辑实现是我们最不优先考虑的。 因此,我们必须发明一种不会破坏客户业务的新解决方案。 实施: 通常,我们处理远程通知并将其传输到本地通知以在设备上显示。 //创建远程通知请求 let request = UNNotificationRequest(标识符:requestIdentifier,内容:内容,触发器:触发器) //将远程通知发布到UNUserNotificationCenter框架 UNUserNotificationCenter.current()。add(request,withCompletionHandler:{(错误)在 logsManager.error(“显示本地通知错误”,错误为“任意”) }) } 由于苹果在UNUserNotificationCeneter框架中发生更改, 因此如果我们每分钟调用2-3次以上, 则会多次调用本地通知发布问题。 没有记录实际的脱粒保持力。 APNS提供两种类型的远程通知。 推送通知–用作警报,并显示在通知中心。 静音推送-用于多语言支持。 这是APNS有效负载的示例json: { “ aps”:{ “ […]

静默推送通知

这个方式可以让app甚至处于未运行状态,或者被暂停的情况下,Server能把iOS app唤醒,通知做某些事情。 (注:1。另一种方式是用VoIP推送通知 2.系统大约会给你30秒来做事,超过就会被停掉) 简单来说就是发一个远程通知给app,确实app是在被暂停或不是运行,都可以把app叫起来做事,而且不会跳出通知栏。 服务器发的APN内容跟一般有点不同: 而且似乎无提示推送在所有情况下均正常工作。 这意味着: 1.该应用程序根本没有运行,它在后台启动该应用程序并执行App Delegate方法 2.该应用已暂停,它允许该应用在后台运行,并执行App Delegate方法 3.应用程序位于前台,它执行App Delegate方法 参考 多任务处理的新功能 远程通知不会在后台启动应用程序 iOS推送通知背景下载神秘化 Apple文档—配置静默通知