我正在开发一个本机应用程序。
在其中一个屏幕中,有一个按钮,单击该按钮后,会向用户发送电子邮件并打开默认的电子邮件应用程序。
现在,电子邮件中包含一个链接,单击该链接,用户将返回我的应用程序。
我怎么知道用户已经从电子邮件应用程序返回到我的应用程序?
反应生命周期方法,例如:
componentDidMount
和componentDidUpdate
不起作用。
答案 0 :(得分:0)
您需要的是应用程序的当前状态。然后,您可以使用AppState
来解决它。
AppState
可以告诉您应用是在前台还是在后台,并在状态更改时通知您。
AppState
通常用于确定处理推送通知时的意图和适当行为。
示例
import React, {Component} from 'react';
import {AppState, Text} from 'react-native';
class AppStateExample extends Component {
state = {
appState: AppState.currentState,
};
componentDidMount() {
AppState.addEventListener('change', this._handleAppStateChange);
}
componentWillUnmount() {
AppState.removeEventListener('change', this._handleAppStateChange);
}
_handleAppStateChange = (nextAppState) => {
if (
this.state.appState.match(/inactive|background/) &&
nextAppState === 'active'
) {
console.log('App has come to the foreground!');
}
this.setState({appState: nextAppState});
};
render() {
return <Text>Current state is: {this.state.appState}</Text>;
}
}
答案 1 :(得分:0)
您可以尝试使用AppState API:https://facebook.github.io/react-native/docs/appstate。
AppState可以告诉您该应用是在前台还是在后台,并在状态更改时通知您。
活动-该应用正在前台运行。
后台-该应用在后台运行。
[iOS]无效-这是在前台和后台之间进行转换时以及在不活动期间(例如,进入多任务处理视图或来电时)发生的状态。>
我已使用它在应用程序中恢复和停止背景音乐。
这是苹果官方文档的链接:https://developer.apple.com/documentation/uikit/app_and_environment/managing_your_app_s_life_cycle