アプリがionic/cordova/phonegapでフォアグラウンドまたはバックグラウンドで実行されているかどうかを確認する方法はありますか、Androidおよびios、ありがとうございます
2つのイベント「Pause
」と「Resume
」を使用します。すべてのイベントは Apache Cordova Events Documentation にあります。
イベント-一時停止:
イベント-再開
そのためのEventlistenerをコードに追加できます。次の2つのイベントの場合:
一時停止-クイック例
document.addEventListener("pause", onPause, false);
function onPause() {
// Handle the pause event
}
または完全な例このように:
<!DOCTYPE html>
<html>
<head>
<title>Pause Example</title>
<script type="text/javascript" charset="utf-8" src="cordova.js"></script>
<script type="text/javascript" charset="utf-8">
// Wait for device API libraries to load
//
function onLoad() {
document.addEventListener("deviceready", onDeviceReady, false);
}
// device APIs are available
//
function onDeviceReady() {
document.addEventListener("pause", onPause, false);
}
// Handle the pause event
//
function onPause() {
}
</script>
</head>
<body onload="onLoad()">
</body>
</html>
再開-クイック例
document.addEventListener("resume", onResume, false);
function onResume() {
// Handle the resume event
}
または完全な例このように
<!DOCTYPE html>
<html>
<head>
<title>Resume Example</title>
<script type="text/javascript" charset="utf-8" src="cordova.js"></script>
<script type="text/javascript" charset="utf-8">
// Wait for device API libraries to load
//
function onLoad() {
document.addEventListener("deviceready", onDeviceReady, false);
}
// device APIs are available
//
function onDeviceReady() {
document.addEventListener("resume", onResume, false);
}
// Handle the resume event
//
function onResume() {
}
</script>
</head>
<body onload="onLoad()">
</body>
</html>
それを試してみて、さらに助けが必要な場合はお知らせください!
Ionic 2およびIonic 3の場合、解は次のようになります。
import { Platform } from 'ionic-angular';
@Component({
template: `OK`
})
constructor(public platform: Platform) {
platform.ready().then(() => {
if (platform.is('cordova')){
//Subscribe on pause
this.platform.pause.subscribe(() => {
//Hello pause
});
//Subscribe on resume
this.platform.resume.subscribe(() => {
window['paused'] = 0;
});
}
});
}
Ionic Sithysの回答に基づく小さなサービス:
factory('BackgroundCheck', function($ionicPlatform){
var service = {};
var inBackground = false;
$ionicPlatform.ready(function() {
document.addEventListener("resume", function(){inBackground = false;}, false);
document.addEventListener("pause", function(){inBackground = true;}, false);
});
service.isActive = function(){
return inBackground == false;
}
return service;
})
はい。
1)アプリが非アクティブになると(バックグラウンドで実行される)、Cordovaはpause
イベントを発生させ、アプリが再びアクティブになると(フォアグラウンドに送られる)Cordovaはresume
イベントを発生させます。
2)これらのイベントから、変数を使用して状態を「フォアグラウンド」または「バックグラウンド」として保存できます。
document.addEventListener("deviceReady", function readyCallback() {
var isAppInForeground = true;
document.addEventListener("pause", function pauseCallback() {
isAppInForeground = false;
}, false);
document.addEventListener("resume", function resumeCallback() {
isAppInForeground = true;
}, false);
});
angular抽象化ionic.Platform
//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
});
$ ionicPlatformのイオンv1ドキュメント を参照してください
以下も使用できます。
import { Platform, Config, MenuController } from '@ionic/angular';
...
constructor( private platform: Platform)
...
this.platform.resume.subscribe(() => {
// Handle event on resume
});
this.platform.pause.subscribe(() => {
// Handle event on pause
});