在“最近”屏幕上更改应用程序的预览图像

时间:2018-05-16 20:28:53

标签: android ios react-native

我正在制作一个React Native应用程序,该应用程序具有安全部分,用户必须输入其密码才能解锁受保护的内容。问题是,当用户在锁定该部分之前切换到另一个应用程序时,将生成一个屏幕截图以及未锁定的内容,并显示在Recents Screen上。

有没有办法用其他东西,空白屏幕或Chrome / Firefox隐身模式等自定义屏幕替换预览?

2 个答案:

答案 0 :(得分:1)

您可以收听应用程序在后台运行,并在当前屏幕顶部显示白色/空白模式

import {AppState} from 'react-native'

class App extends React.Component {
  constructor(props) {
    super(props)

    this.state = {
      appState: AppState.currentState
    }
  }

  componentDidMount() {
    AppState.addEventListener("change", this._handleAppStateChange);
  }

  componentWillUnmount() {
    AppState.removeEventListener("change", this._handleAppStateChange);
  }

  _handleAppStateChange = (newAppState) => {
    if(newAppState === 'background' && newAppState !== this.state.appState) {
      // SHOW EMPTY SCREEN
    }

    if(newAppState !== 'background' && this.state.appState === 'background') {
      // HIDE EMPTY SCREEN
    }
    
    if (newAppState !== this.state.appState) {
      this.setState({ appState: newAppState })
    }
  }

  ... rest of the app ....
}

AppState documentation

答案 1 :(得分:0)

您可以使用react-native-flag-secure-android软件包

yarn add react-native-flag-secure-android

用法

import FlagSecure from 'react-native-flag-secure-android';
 
function flagSecure(enable) {
  if (enable) {
    FlagSecure.activate();
  } else {
    FlagSecure.deactivate();
  }
}

注意:它适用于android