Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/400.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 本地通知isn';t显示_Javascript_React Native_Expo - Fatal编程技术网

Javascript 本地通知isn';t显示

Javascript 本地通知isn';t显示,javascript,react-native,expo,Javascript,React Native,Expo,我需要显示一个简单的本地通知,以了解它是如何工作的。为此,我编写了以下代码: askPermissions = async () => { const { status: existingStatus } = await Permissions.getAsync(Permissions.NOTIFICATIONS); let finalStatus = existingStatus; if (existingStatus !== 'granted') {

我需要显示一个简单的本地通知,以了解它是如何工作的。为此,我编写了以下代码:

askPermissions = async () => {
    const { status: existingStatus } = await Permissions.getAsync(Permissions.NOTIFICATIONS);
    let finalStatus = existingStatus;
    if (existingStatus !== 'granted') {
      const { status } = await Permissions.askAsync(Permissions.NOTIFICATIONS);
      finalStatus = status;
    }
    return finalStatus === 'granted';
  };

  sendNotificationImmediately = async () => {
    const notificationId = await Notifications.presentLocalNotificationAsync({
      title: 'This is header',
      body: 'This is body',
    });
    console.log(notificationId);
  };
并以这样的方式调用此方法:

componentDidMount() {
    if (this.askPermissions()) {
      console.log('Permission presents');
      this.sendNotificationImmediately();
    } else {
      console.log('Denied');
    }
  }
为了编写这段代码,我使用了教程。但当我运行应用程序时,不会显示通知,但会显示权限。那么,问题的原因是什么?我该如何解决呢?

您可以试试这个

askPermissions = async () => {
    const { status: existingStatus } = await Permissions.getAsync(Permissions.NOTIFICATIONS);
    let finalStatus = existingStatus;
    if (existingStatus !== 'granted') {
      const { status } = await Permissions.askAsync(Permissions.NOTIFICATIONS);
      finalStatus = status;
    } else if (finalStatus === 'granted') {
      Notifications.presentLocalNotificationAsync({
        title: 'This is header',
        body: 'This is body',
      });
    }

componentDidMount() {
    this.askPermissions();
  }
希望这有帮助。

你可以试试这个

askPermissions = async () => {
    const { status: existingStatus } = await Permissions.getAsync(Permissions.NOTIFICATIONS);
    let finalStatus = existingStatus;
    if (existingStatus !== 'granted') {
      const { status } = await Permissions.askAsync(Permissions.NOTIFICATIONS);
      finalStatus = status;
    } else if (finalStatus === 'granted') {
      Notifications.presentLocalNotificationAsync({
        title: 'This is header',
        body: 'This is body',
      });
    }

componentDidMount() {
    this.askPermissions();
  }
希望这有帮助