如何在React Native推送通知中重置应用程序徽章数字?

4
我想在用户打开应用时重置react-native-push-notification中的应用程序徽章数字,但是在文档中找不到任何方法,请问有什么建议吗?

2
尝试使用 setApplicationIconBadgeNumber(0),参考链接:https://facebook.github.io/react-native/docs/pushnotificationios.html#setapplicationiconbadgenumber - Ivan Chernykh
3个回答

7

6
您可以将以下代码添加到AppDelegate.m文件中,这会使得应用程序在打开或进入后台时将应用图标上的未读数字清零。
- (void)applicationDidBecomeActive:(UIApplication *)application{
   [UIApplication sharedApplication].applicationIconBadgeNumber = 0;
 }

-(void)applicationDidEnterBackground:(UIApplication *)application{
   [UIApplication sharedApplication].applicationIconBadgeNumber = 0;
 }

或者

在 app.js 中(如果使用 React Hooks),当应用程序变为活动状态或进入后台时,还将重置徽章计数

import { AppState } from 'react-native';

 useEffect(() => {
    AppState.addEventListener("change", _handleAppStateChange);

    return () => {
      AppState.removeEventListener("change", _handleAppStateChange);
    };
  }, []);

  const _handleAppStateChange = (nextAppState) => {
    if (Platform.OS === 'ios' && nextAppState === 'active' || nextAppState === 'background') {
      PushNotificationIOS.setApplicationIconBadgeNumber(0);
    }
  }

appdelegate.m选项对我来说更好,因为它不需要PushNotificationIOS库,而且仅为了这个小功能安装它有点无用。 - undefined

1

非常简单

import PushNotification from 'react-native-push-notification';


...
...


  
PushNotification.setApplicationIconBadgeNumber(0); //magic

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接