是否可以手动暂停 Android PhoneGap 应用程序?当有人单击按钮时,我需要暂停应用程序并转到后台。我用过navigator.app.exitApp();
,但它完全关闭了应用程序。我不想像使用本机后退按钮那样关闭应用程序只是卸载。请帮忙,谢谢。
问问题
3627 次
2 回答
3
这是一个类似于 Joram Teusink 的答案的解决方案,但更简单,因为您不需要手动编辑 java 代码 - 只需使用 phonegap / cordova CLI 安装一个插件。
插件一功能:goHome()。如果你调用它,应用程序将暂停 - 就像按下主页按钮一样。
用法:
navigator.Backbutton.goHome(function() {
console.log('success - the app will now pause')
}, function() {
console.log('fail')
});
安装:
phonegap 本地插件添加https://github.com/mohamed-salah/phonegap-backbutton-plugin.git
这是github页面:
https://github.com/mohamed-salah/phonegap-backbutton-plugin.git
于 2014-09-12T20:30:38.937 回答
1
在您的 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", []);
}
};
});
和:
// 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");
}
);
}
在 Android Native 上的 Java 中:
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;
}
}
调用它:
homeButton();
它有效,并且是我的回购的一部分:https ://github.com/teusinkorg/jpHolo/
于 2013-09-26T13:06:44.510 回答