在Android 13中询问通知许可,以获取React Native应用程序。
#javascript #react #reactnative #reactjsdevelopment

简介

在这篇文章中,当用户在设备中安装了Android版本13及更高版本时,我们将研究如何要求用户在Android App中的Android部分中允许通知。对于低于13的Android版本(即12和11及以下),默认情况下启用了通知。但是从版本13及更高版本中,必须征得用户许可以启用通知并关闭通知(如果AndroidManifest.xml文件中不存在必要的权限,则将其关闭(并阻止)。

因此,让我们研究如何提示用户在所有版本的React Native中启用通知(因为这是在React Native版本71中引入的,并且使用少于版本71的开发人员没有教程来制作此工作。帖子为您解决了)。我将进入node_modules等进行一些修改。

安装

这篇文章假设您已经创建了一个React Native项目并安装了以下库,并且已经在Android文件夹中进行了更改,例如在AndroidManifest.xml中添加代码以自定义通知等。下面必要的库,并从下面的链接进行必要的更改。

npm i react-native-push-notification

https://www.npmjs.com/package/react-native-push-notification

现在进入Android 13特定代码,我们必须将build.gradle中的编译SDK更改为33,因为Android 13支持SDK版本33及以上。现在,转到AndroidManifest.xml并粘贴以下许可以启用通知。

<uses-permission android:name="android.permission.POST_NOTIFICATIONS"/>

完成了Android代码。

现在让我们转到事物的反应本地一侧。对于React本机版本小于71.0,post_notifications在其源代码中不存在。因此,如果我们调用此功能,我们将获得无限零错误,并且该应用会立即崩溃。因此,我发现了解决这个问题的解决方案。您要做的就是转到Node_modules文件夹,然后进入React本地文件夹,然后进入库文件夹,然后进入Permissionsandroid文件夹,然后打开允许AdrisermissionAndroid.js文件。为了更清楚,我在下面添加了一个gif供您遵循。

Image description

现在,您要做的就是在此wermissionAndroid.js文件中的每个部分中添加代码。我已经附上了一个GIF,让您知道将代码放在哪里。

in permissions = object.freeze({})添加以下代码。

POST_NOTIFICATIONS: 'android.permission.POST_NOTIFICATIONS',

在类Permissionsandroid中添加以下代码。

 POST_NOTIFICATIONS: string,

Image description

现在转到Android文件夹中的build.gradle,然后将CompileSDK和Targetsdk版本更改为33,因为Android 13中的权限要求使用更高的版本。将Minsdkversion版本保持在21以上。

compileSdkVersion = 33
targetSdkVersion = 33

现在,重建您的React本机应用程序,并简单地使用以下代码询问用户的许可。您可以使用以下代码作为请求通知许可的参考。


import {
  PermissionsAndroid,
  Platform,
  Text,
  TouchableOpacity,
  View,
} from 'react-native';
import React from 'react';

const NotificationPermission = () => {
  const checkApplicationPermission = async () => {
    if (Platform.OS === 'android') {
      try {
        await PermissionsAndroid.request(
          PermissionsAndroid.PERMISSIONS.POST_NOTIFICATIONS,
        );
      } catch (error) {
      }
    }
  };

  return (
    <View>
      <TouchableOpacity
        onPress={() => {
          checkApplicationPermission();
        }}>
        <Text>NotificationPermission</Text>
      </TouchableOpacity>
    </View>
  );
};

export default NotificationPermission;

您可以使用上述代码向使用Android版本为13及以上的Android设备的用户询问通知权限。这篇文章是为了解决此问题并节省其他React Native开发人员的时间。我目前正在处理的应用程序面临这个问题,因为互联网上没有可用的教程。

结论

这就是您在Android设备中启用和询问通知和启用版本13及更高版本中的通知。

要了解有关React&React本地的更多信息,您可以在Udemy中查看我的课程。

https://www.udemy.com/course/react-native-for-absolute-beginners-with-react-hooks/