Home > Back-end >  How to access AppDelegate methods in react native iOS module
How to access AppDelegate methods in react native iOS module

Time:10-24

I'm building an iOS module and want to hook into the AppDelegate methods like applicationWillResignActive, how can I achieve that?

CodePudding user response:

You are trying to use applicationWillResignActive that method will be fired every time the application will enter the background.

You can achieve that in react native by using AppState that can tell you if the app is in the foreground or background, and notify you when the state changes.

Example:

import React, { useRef, useState, useEffect } from "react";
import { AppState, StyleSheet, Text, View } from "react-native";

const AppStateExample = () => {
  const appState = useRef(AppState.currentState);
  const [appStateVisible, setAppStateVisible] = useState(appState.current);

  useEffect(() => {
    const subscription = AppState.addEventListener("change", nextAppState => {
      if (
        appState.current.match(/inactive|background/) &&
        nextAppState === "active"
      ) {
        console.log("App has come to the foreground!");
      }

      appState.current = nextAppState;
      setAppStateVisible(appState.current);
      console.log("AppState", appState.current);
    });

    return () => {
      subscription.remove();
    };
  }, []);

  return (
    <View style={styles.container}>
      <Text>Current state is: {appStateVisible}</Text>
    </View>
  );
};

const styles = StyleSheet.create({
  container: {
    flex: 1,
    justifyContent: "center",
    alignItems: "center",
  },
});

export default AppStateExample;
  • Related