如何在响应本机推送通知时重置应用程序徽章编号?

时间:2018-02-24 09:59:20

标签: react-native push-notification react-native-push-notification

当用户打开应用但在文档中的任何位置找不到该方法时,我正在 react-native-push-notification 中查看重置应用程序徽章编号 ,任何想法?

2 个答案:

答案 0 :(得分:0)

https://facebook.github.io/react-native/docs/pushnotificationios.html#setapplicationiconbadgenumber

  PushNotificationIOS.getApplicationIconBadgeNumber((num)=>{ // get current number
        if(num >= 1){
            PushNotificationIOS.setApplicationIconBadgeNumber(0) //set number to 0
        }
    });
从反应本机导入的

PushNotificationIOS

答案 1 :(得分:0)

您可以将其添加到您的AppDelegate.m中,当应用打开或进入后台时,它将设置徽章计数为0。

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

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

在app.js内(如果使用React钩子),还将在应用程序激活或进入后台时重置徽章计数

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);
    }
  }