Manually pause an application in Android Phonegap

后端 未结 2 560
清歌不尽
清歌不尽 2021-01-03 04:21

Would it be possible to pause an Android PhoneGap application manually? I need to pause the application and go to background when somebody click a button. I used navig

相关标签:
2条回答
  • 2021-01-03 04:26

    Here's a solution which is similar to Joram Teusink's answer, but easier because you don't need to manually edit java code - just install a plugin with the phonegap / cordova CLI.

    The plugin one function: goHome(). If you call this, the app will pause - just like pressing the home button.

    Usage:

    navigator.Backbutton.goHome(function() {
      console.log('success - the app will now pause')
    }, function() {
      console.log('fail')
    });
    

    Installation:

    phonegap local plugin add https://github.com/mohamed-salah/phonegap-backbutton-plugin.git

    Here's the github page:

    https://github.com/mohamed-salah/phonegap-backbutton-plugin.git

    0 讨论(0)
  • 2021-01-03 04:34

    In your Javascript:

    // HomeButton
    cordova.define("cordova/plugin/homebutton", function (require, exports, module) {
        var exec = require("cordova/exec");
        module.exports = {
            show: function (win, fail) {
                exec(win, fail, "HomeButton", "show", []);
            }
        };
    });
    

    And:

    // HomeButton
    function homeButton() {
        var home = cordova.require("cordova/plugin/homebutton");
        home.show(
            function () {
                console.info("PhoneGap Plugin: HomeButton: callback success");
            },
            function () {
                console.error("PhoneGap Plugin: HomeButton: callback error");
            }
        );
    }
    

    In Java on Android Native:

    package org.apache.cordova.plugins;
    
    import org.apache.cordova.api.CallbackContext;
    import org.apache.cordova.api.CordovaPlugin;
    import org.apache.cordova.api.PluginResult;
    import org.json.JSONArray;
    
    import android.content.Intent;
    import android.util.Log;
    
    public class HomeButton extends CordovaPlugin {
    
        public static final String LOG_PROV = "PhoneGapLog";
        public static final String LOG_NAME = "HomeButton Plugin";
    
        @Override
        public boolean execute(String action, JSONArray args, CallbackContext callbackContext) {
            Log.d(LOG_PROV, LOG_NAME + ": Simulated home button.");
            Intent i = new Intent(Intent.ACTION_MAIN);
            i.addCategory(Intent.CATEGORY_HOME);
            this.cordova.startActivityForResult(this, i, 0);
            callbackContext.sendPluginResult(new PluginResult(PluginResult.Status.OK));
            return true;
        }
    
    }
    

    Call it with:

    homeButton();
    

    It works, and is part of a repo of mine: https://github.com/teusinkorg/jpHolo/

    0 讨论(0)
提交回复
热议问题