首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何检查离子型/cordova/phonegap中前台或后台运行的应用程序

如何检查离子型/cordova/phonegap中前台或后台运行的应用程序
EN

Stack Overflow用户
提问于 2015-04-13 13:01:47
回答 8查看 55.8K关注 0票数 51

有没有任何方法来检查这个应用程序是在前台运行还是在后台运行,在离子型/cordova/phonegap中,我需要在android和ios上使用它,非常感谢

EN

回答 8

Stack Overflow用户

回答已采纳

发布于 2015-04-13 15:43:08

使用两个事件"Pause“和"Resume”。您将在Apache事件文档中找到所有事件。

活动-暂停:

  • 当本机平台将应用程序放到后台时,通常当用户切换到不同的应用程序时,就会触发暂停事件。

活动-恢复

  • 当本机平台从后台提取应用程序时,将触发简历事件。

您可以为此在代码中添加一个Eventlistener。这两项活动如下:

暂停-快速示例

代码语言:javascript
复制
document.addEventListener("pause", onPause, false);

function onPause() {
    // Handle the pause event
}

或者是这样的完整示例

代码语言:javascript
复制
<!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>

简历-快速示例

代码语言:javascript
复制
document.addEventListener("resume", onResume, false);

function onResume() {
    // Handle the resume event
}

完整示例,如下所示

代码语言:javascript
复制
<!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>

试试看,如果你需要进一步的帮助,请告诉我!

票数 57
EN

Stack Overflow用户

发布于 2017-06-23 10:22:06

对于Ionic 2和Ionic 3,解决方案是:

代码语言:javascript
复制
import { Platform } from 'ionic-angular';

@Component({
  template: `OK`
})

constructor(public platform: Platform) {

    platform.ready().then(() => {

      if (platform.is('cordova')){

        //Subscribe on pause i.e. background
        this.platform.pause.subscribe(() => {
          //Hello pause
        });

        //Subscribe on resume i.e. foreground 
        this.platform.resume.subscribe(() => {
          window['paused'] = 0;
        });
       }
    });
}

票数 50
EN

Stack Overflow用户

发布于 2016-06-26 21:36:20

一项基于Sithys回答的Ionic的小服务:

代码语言:javascript
复制
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;    
})
票数 13
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/29606012

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档