有没有想过我们从安装的应用程序收到的通知?或者 Swiggy 或 Zomato 如何通过其创意通知激发我们在凌晨 3 点点餐? ?
让我们深入了解通知的概念!
什么是通知?
通知是应用程序发送的消息或警报,用于通知用户有关更新、事件或操作的信息,通常在应用程序界面之外传递。
现在可以有两种类型的通知,如下所示 -
推送通知
推送通知是当应用程序未在前台主动运行时从服务器发送到应用程序的消息或警报。它们主要用于通过发送更新、提醒或个性化内容来保持用户的参与度。推送通知是通过操作系统服务传递的,例如适用于 iOS 的 Apple 推送通知服务 (APN) 或适用于 Android 的 Firebase 云消息传递 (FCM)。
推送通知的工作原理:
- 注册:安装或首次打开应用程序时,应用程序会从操作系统的推送通知服务(APN 或 FCM)请求唯一的设备令牌。
- 服务器通信:应用程序将此令牌发送到应用程序的后端服务器,该服务器存储它以供将来使用。
- 发送通知:服务器使用设备令牌将通知有效负载(包含标题、消息、操作按钮等)发送到推送通知服务(APNs/FCM)。
- 传递:推送通知服务将消息传递到相应的设备,即使应用程序未运行。
应用内通知
应用内通知是在用户主动使用应用程序时向用户显示的消息或警报。与推送通知不同,这些通知不需要服务器干预,而是在应用程序本身内触发,通常是用户操作或应用程序事件的结果。
应用内通知的工作原理:
- 事件触发器:当应用内发生特定事件(例如用户达到里程碑或需要注意的功能)时,应用可以触发应用内通知。
- 显示:通知在应用程序的 UI 中显示为横幅、模式或弹出窗口,指导用户或告知他们有关事件的信息。
- 自定义逻辑:应用内通知由应用程序的代码直接处理,并且可以根据应用程序的内部状态或逻辑动态显示。
React Native android 应用程序中的实现:
现在我们了解了通知及其类型,是时候在您自己的 React Native 应用程序中实现该功能了。本指南仅用于在 React 原生 Android 应用程序中实现推送通知,如果您想要 iOS 或应用程序内通知,请写下评论,我肯定会发布!
首先,我们将使用名为 OneSignal 的第三方服务。我最近发现了这个平台,并对他们提供的服务感到震惊。
关于OneSignal:
OneSignal 是一种推送通知服务,使应用程序开发人员能够跨各种平台(包括移动应用程序、网站和电子邮件)向用户发送有针对性的通知。它支持推送、应用内和 Web 通知,提供分段、自动化、A/B 测试和实时分析等功能。 OneSignal 广泛用于通过提供易于集成的发送个性化消息的解决方案来提高用户参与度和保留率。他们的免费套餐包括每月 10,000 次免费电子邮件发送、无限移动推送发送、旅程工作流程、GDPR 合规性、A/B 测试
回到指南,因为我们已经知道推送通知需要通过 FCM(Firebase 云消息传递)进行服务器端处理,因此需要遵循以下几个步骤:
-
设置 Firebase 项目(如果您已有 Firebase 项目,请忽略前两个步骤):
- 转到 firebase 控制台并登录您的帐户。
- 从这里创建一个项目并按照步骤操作
- 创建项目后,从侧边栏转到项目设置
- 从栏中导航到服务帐户,它应该如下所示
- 单击生成新的私钥,这将下载一个 json 文件,小心地将其存储在安全的地方,我们在设置 OneSignal 时将需要它。
-
设置 OneSignal
- 前往 OneSignal 并创建一个帐户。
- 创建帐户后,完成设置步骤并创建组织,现在,您将看到用于添加应用程序的页面。
- 在此页面中提供您的应用程序名称,并为我们的案例选择 Google Android (FCM)。
然后点击配置您的平台
- 现在您将被重定向到此页面,我们将在其中使用在 Firebase 配置期间下载的服务帐户 json 文件
上传 json,然后保存并继续
- 在下一页选择 React Native/Expo 作为目标 SDK,然后再次保存并继续
- 在下一个屏幕中,您将获得应用程序 ID,这是一个机密 ID,使用此 ID 任何人都可以在您的应用程序中触发通知,因此请小心这个秘密。
我们已经完成了 firebase 和 OneSignal 中的设置,现在剩下的唯一任务是一些代码咖啡
将 OneSignal 添加到您的应用程序并进行配置
- 第 1 步:首先运行此命令将 OneSignal 添加到您的应用程序
npm i react-native-onesignal
- 第 2 步:在您的 index.js 或 App.tsx 或 App.js(以项目根目录为准)中,导入 OneSignal
import { OneSignal } from 'react-native-onesignal';
并且您已添加此代码片段来初始化 OneSignal
OneSignal.initialize('YOUR_APP_ID');
您可以将其包装在 useEffect 挂钩中,以便与 OneSignal 无缝集成和连接。
这将使用 OneSignal 的唯一 ID 来初始化设备,您可以在侧边栏的订阅中进行检查。每个初始化的设备都将使用这个唯一的 OneSignal ID 进行标识,如果您已经有用户拥有自己的唯一 ID,您也可以使用以下代码片段手动设置它:
OneSignal.login(userId)
用户成功订阅后,会在仪表板中显示如下
现在您可能会遇到一些 OneSignal 未正确使用的问题或一些严重错误,因此您可以按照以下部分来帮助我解决这些问题。
- 第 3 步:在 androidappbuild.gradle 中添加以下代码片段
dependencies{ ... implementation('com.onesignal:OneSignal:[3.15.4, 3.99.99]') ... }
- 第4步:在android中为推送通知提供必要的权限,在androidappsrcmainAndroidManifest.xml中添加
<uses-permission android:name="android.permission.INTERNET"></uses-permission> <uses-permission android:name="android.permission.POST_NOTIFICATIONS"></uses-permission>
就在应用程序标签之前。互联网权限是可选的,但因为它可能默认启用。
繁荣?涵盖了实现推送通知的所有步骤,您可以从 OneSignal 仪表板本身发送测试通知。
自己尝试一下,如果有任何疑问,可以在下面评论。关注获取更多详细攻略!
参考文献:
https://documentation.onesignal.com/docs/react-native-sdk-setup
https://documentation.onesignal.com/reference/push-notification
https://medium.com/tribalscale/mobile-push-notifications-implementation-in-react-native-with-one-signal-4e810dddd350
编码愉快!??
以上是如何在 React Native (Android) 中实现推送通知的详细内容。更多信息请关注PHP中文网其他相关文章!

JavaScript是现代网站的核心,因为它增强了网页的交互性和动态性。1)它允许在不刷新页面的情况下改变内容,2)通过DOMAPI操作网页,3)支持复杂的交互效果如动画和拖放,4)优化性能和最佳实践提高用户体验。

C 和JavaScript通过WebAssembly实现互操作性。1)C 代码编译成WebAssembly模块,引入到JavaScript环境中,增强计算能力。2)在游戏开发中,C 处理物理引擎和图形渲染,JavaScript负责游戏逻辑和用户界面。

JavaScript在网站、移动应用、桌面应用和服务器端编程中均有广泛应用。1)在网站开发中,JavaScript与HTML、CSS一起操作DOM,实现动态效果,并支持如jQuery、React等框架。2)通过ReactNative和Ionic,JavaScript用于开发跨平台移动应用。3)Electron框架使JavaScript能构建桌面应用。4)Node.js让JavaScript在服务器端运行,支持高并发请求。

Python更适合数据科学和自动化,JavaScript更适合前端和全栈开发。1.Python在数据科学和机器学习中表现出色,使用NumPy、Pandas等库进行数据处理和建模。2.Python在自动化和脚本编写方面简洁高效。3.JavaScript在前端开发中不可或缺,用于构建动态网页和单页面应用。4.JavaScript通过Node.js在后端开发中发挥作用,支持全栈开发。

C和C 在JavaScript引擎中扮演了至关重要的角色,主要用于实现解释器和JIT编译器。 1)C 用于解析JavaScript源码并生成抽象语法树。 2)C 负责生成和执行字节码。 3)C 实现JIT编译器,在运行时优化和编译热点代码,显着提高JavaScript的执行效率。

JavaScript在现实世界中的应用包括前端和后端开发。1)通过构建TODO列表应用展示前端应用,涉及DOM操作和事件处理。2)通过Node.js和Express构建RESTfulAPI展示后端应用。

JavaScript在Web开发中的主要用途包括客户端交互、表单验证和异步通信。1)通过DOM操作实现动态内容更新和用户交互;2)在用户提交数据前进行客户端验证,提高用户体验;3)通过AJAX技术实现与服务器的无刷新通信。

理解JavaScript引擎内部工作原理对开发者重要,因为它能帮助编写更高效的代码并理解性能瓶颈和优化策略。1)引擎的工作流程包括解析、编译和执行三个阶段;2)执行过程中,引擎会进行动态优化,如内联缓存和隐藏类;3)最佳实践包括避免全局变量、优化循环、使用const和let,以及避免过度使用闭包。


热AI工具

Undresser.AI Undress
人工智能驱动的应用程序,用于创建逼真的裸体照片

AI Clothes Remover
用于从照片中去除衣服的在线人工智能工具。

Undress AI Tool
免费脱衣服图片

Clothoff.io
AI脱衣机

Video Face Swap
使用我们完全免费的人工智能换脸工具轻松在任何视频中换脸!

热门文章

热工具

SecLists
SecLists是最终安全测试人员的伙伴。它是一个包含各种类型列表的集合,这些列表在安全评估过程中经常使用,都在一个地方。SecLists通过方便地提供安全测试人员可能需要的所有列表,帮助提高安全测试的效率和生产力。列表类型包括用户名、密码、URL、模糊测试有效载荷、敏感数据模式、Web shell等等。测试人员只需将此存储库拉到新的测试机上,他就可以访问到所需的每种类型的列表。

SublimeText3 Linux新版
SublimeText3 Linux最新版

MinGW - 适用于 Windows 的极简 GNU
这个项目正在迁移到osdn.net/projects/mingw的过程中,你可以继续在那里关注我们。MinGW:GNU编译器集合(GCC)的本地Windows移植版本,可自由分发的导入库和用于构建本地Windows应用程序的头文件;包括对MSVC运行时的扩展,以支持C99功能。MinGW的所有软件都可以在64位Windows平台上运行。

Atom编辑器mac版下载
最流行的的开源编辑器

DVWA
Damn Vulnerable Web App (DVWA) 是一个PHP/MySQL的Web应用程序,非常容易受到攻击。它的主要目标是成为安全专业人员在合法环境中测试自己的技能和工具的辅助工具,帮助Web开发人员更好地理解保护Web应用程序的过程,并帮助教师/学生在课堂环境中教授/学习Web应用程序安全。DVWA的目标是通过简单直接的界面练习一些最常见的Web漏洞,难度各不相同。请注意,该软件中