//The pause event fires when the native platform puts the application
// into the background, typically when the user switches to a different
// application.
$ionicPlatform.on('pause', function () {
// Handle event on pause
});
// The resume event fires when the native platform
// pulls the application out from the background.
$ionicPlatform.on('resume', function () {
// Handle event on resume
});
import { Plugins } from '@capacitor/core';
const { App } = Plugins;
App.addListener('appStateChange', (state) => {
// state.isActive contains the active state
console.log('App state changed. Is active?', state.isActive);
});
对于电容器v3+,安装@capacitor/app,执行电容器同步(npx cap sync),然后导入并使用带有以下代码的插件:
import { App } from '@capacitor/app';
App.addListener('appStateChange', ({ isActive }) => {
console.log('App state changed. Is active?', isActive);
});
initializeApp() {
//Subscribe on pause i.e. background or lock phone
this.platform.pause.subscribe(() => {
console.log('pause')
});
//Subscribe on pause i.e. background or unlock phone
this.platform.resume.subscribe(() => {
console.log('resume');
});
}
9条答案
按热度按时间w80xi6nr1#
使用两个事件“
Pause
“和“Resume
“。您将在Apache Cordova Events Documentation中找到所有事件。事件-暂停:
事件-恢复
你可以在你的代码中添加一个事件监听器。对于这两个事件,它们将是:
暂停-快速示例
或完整示例如下:
简历-快速示例
或完整示例如下所示
试试看,让我知道,如果你需要进一步的帮助!
swvgeqrz2#
对于离子2和离子3,解为:
muk1a3rh3#
基于Sithys答案的Ionic小服务:
hc2pp10m4#
"是否有办法检查应用程序是在前台还是后台运行?"
是的。
1)当应用变为非活动状态(在后台运行)时,Cordova将触发
pause
事件,当应用再次变为活动状态(置于前台)时,Cordova将触发resume
事件。2)从这些事件中,可以使用变量将状态存储为"前台"或"后台"。
6g8kf2rb5#
二零一九年九月十七日
这对我来说在
Ionic 4
应用程序上运行良好。在Android
和iOS
设备上都进行了测试。to94eoyn6#
使用
ionic.Platform
的Angular 抽象参见ionic v1 documentation for $ionicPlatform
qcuzuvrc7#
您还可以用途:
...
...
r1zk6ea18#
对于使用电容器的用户:
App
plugin可用于预订appStateChange
事件。对于Capacitor v2,导入并使用带有以下代码的插件:
对于电容器v3+,安装
@capacitor/app
,执行电容器同步(npx cap sync
),然后导入并使用带有以下代码的插件:电容v4+提供两个额外的事件,称为
pause
和resume
,可以订阅这两个事件来代替appStateChange
事件:一个二个一个一个
根据电容器文档,
appStateChange
事件取决于iOS设备上的UIApplication.willResignActiveNotification
和UIApplication.didBecomeActiveNotification
,而pause
事件取决于UIApplication.didEnterBackgroundNotification
,resume
事件取决于iOS开发上的UIApplication.willEnterForegroundNotification
。我不熟悉这些事件如何不同的细节,但它们之间似乎确实存在差异(例如see this question)。
在Android上,
appStateChange
、pause
和resume
事件似乎都依赖于相同的原生事件:x一米十七氮一x和x一米十八氮一x。如果您需要检查应用程序的当前状态,而不等待上述任何事件触发,则可以对Capacitor v2+使用
getState
方法。x9ybnkn69#