我正在制作一个React Native应用程序,该应用程序具有安全部分,用户必须输入其密码才能解锁受保护的内容。问题是,当用户在锁定该部分之前切换到另一个应用程序时,将生成一个屏幕截图以及未锁定的内容,并显示在Recents Screen上。
有没有办法用其他东西,空白屏幕或Chrome / Firefox隐身模式等自定义屏幕替换预览?
答案 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 ....
}
答案 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