React Native 使用 PushNotificationIOS 未调用报错

阅读时长 6 分钟读完

前言

React Native 是一个广受欢迎的开源框架,可以使用 JavaScript 和 React 来构建 iOS 和 Android 应用程序。而 PushNotificationIOS 是 React Native 提供的用于实现本地推送功能的组件,开发者可以使用它来发送通知,提醒用户注意更新、新内容等。

但是,使用 PushNotificationIOS 时,开发者可能会遇到一些问题,比如未调用成功,调用失败等错误。本文将会详细介绍这些错误并提供解决方案。

实例代码说明

我们假设已经在 React Native 项目中安装了 PushNotificationIOS,首先确保应用程序有发送通知的权限。在 iOS 上,我们需要添加一个特定的权限,来询问用户是否同意发送本地通知。

React Native 为此提供了各种函数,可在当前组件加载完成后自行调用 PushNotificationIOS.checkPermissionsPushNotificationIOS.requestPermissions 函数。

对应的声明为:

-- -------------------- ---- -------
-- -------------------
-------------------------------------- ---------------------------

-- ----------------------------
--------------------------------------------------------- -- -
  --------------- ----------- ---
---

-- -----------
----------------------------------------------------------- -- -
  --------------- ----------- ---
---
  • checkPermissions:检查应用程序是否已被授权使用本地通知。
  • requestPermissions:向用户请求使用本地通知的权限。

以下示例代码是一种典型的使用 PushNotificationIOS 组件的方法。

-- -------------------- ---- -------
------ ------ - --------- - ---- --------
------ - ----------------- ---- - ---- ---------------
------ ------------------- ---- ------------------------------------------------

----- ------------------------- ------- --------- -
  ----------- - -- -- -
    ----------------------------------------------
      ---------- --------
      ----------- ----- ------------ ------
      --------------------------- --
      ---------- ----------
      --------- - --- ------ --
    ---
  --

  -------- -
    ------ -
      ----------------- ---------------------------
        ---------- -------------------
      -------------------
    --
  -
-

------ ------- --------------------------

上面的代码定义了一个按钮,当用户点击它时,将显示一个本地通知。我们将在下一部分讨论可能出现的问题及其解决方案。

调用未成功

如果你按照上述示例代码在你的 React Native 应用程序中编写代码,但是当你尝试在 iOS 上发送本地通知时,你发现它并没有工作,甚至没有打印任何信息或状态改变,我们可以逐步排除一下可能出现的问题:

必须受到授权

首先,应用程序必须被允许发送通知。此权限对于新版的 iOS 是必须的。你可能已经请求了这个权限,但是你必须要检查它是否已被授权。

设备端没有用户的许可

即使用户在应用程序中授予了通知权限,仍然需要在设备的设置中打开通知(打开通知后,会有小红点显示)。

通过运行以下代码可以检查设置是否正确:

设备可能不支持发送通知

还有可能是设备不支持发送通知,但这种情况相对较少。

代码必须运行在主线程

当你的代码运行时,一定确保它在主线程上运行,这可以避免在处理推送通知时出现进一步的问题。把你的代码都写在主线程里,防止出现未知的问题。

未正确设置通知标题和内容

确保通知的标题和内容被正确设置,并且不为空。

如果这些问题都被解决了,但是通知还是不能发送,你需要检查你的 Apple Push Notification 证书是否已在成果解锁。你可以通过查看 Apple Developer 中心中的证书来进行检查。

结论

使用 PushNotificationIOS 时,你可能会遇到多种错误。但在确定问题后,它们都是可以得到解决的。

在判断通知是否成功发送时,请确保所有必需的步骤都已被执行,且应用程序始终在主线程上运行。

使用 PushNotificationIOS 组件来发送本地通知是一项重要的功能,对于提醒用户要注意某些固定时间、打开应用等有很大的帮助。

参考资料:

来源:JavaScript中文网 ,转载请注明来源 https://www.javascriptcn.com/post/674d8d94947dc5bcb3fe3461

纠错
反馈