我的phonegap应用程序有问题.我想在按下后退按钮时最小化应用程序(在后台发送应用程序以使其仍在运行).
这是我的代码.
document.addEventListener("backbutton", onBackKeyDown, false);
function onBackKeyDown() {
}
Run Code Online (Sandbox Code Playgroud)
如果我使用navigator.app.exitApp();- 我的应用程序将终止,如果我使用navigator.app.backhistory()- 它将返回上一页.
我希望如果按下"返回"按钮,它会将我发送到主屏幕并将应用程序发送到后台,以便它仍在运行.谢谢.
Moh*_*lah 14
你可以使用这个插件 然后当设备准备好听后退按钮时和onBackKeyDown使用插件启动主屏幕
`document.addEventListener("backbutton", onBackKeyDown, false);
function onBackKeyDown() {
navigator.Backbutton.goHome(function() {
console.log('success')
}, function() {
console.log('fail')
});
}
`
Run Code Online (Sandbox Code Playgroud)
这个插件刚刚从Dpa99c更新回答帮助用户cordova> = 3
最好的办法是使用插件启动主屏幕.我已经为自己的目的创建了一个 - 你可以从这里下载我的Eclipse测试项目,其中包含源代码和生成的编译APK .
然后,您将使用我的插件覆盖后退按钮的默认行为,如下所示:
function onBackKeyDown(e) {
e.preventDefault();
cordova.require('cordova/plugin/home').goHome(function(){
console.info("Successfully launched home intent");
}, function(){
console.error("Error launching home intent");
});
}
document.addEventListener("backbutton", onBackKeyDown, false);
Run Code Online (Sandbox Code Playgroud)
这是插件源代码:
Home.java
package org.apache.cordova.plugin;
import org.json.JSONArray;
import org.json.JSONException;
import android.content.Intent;
import android.util.Log;
import org.apache.cordova.api.CallbackContext;
import org.apache.cordova.api.CordovaPlugin;
public class Home extends CordovaPlugin {
private static final String LOG_TAG = "HomePlugin";
@Override
public boolean execute(String action, JSONArray args, CallbackContext callbackContext) throws JSONException {
if ("goHome".equals(action)) {
try {
Intent i = new Intent(Intent.ACTION_MAIN);
i.addCategory(Intent.CATEGORY_HOME);
this.cordova.getActivity().startActivity(i);
} catch (Exception e) {
Log.e(LOG_TAG, "Exception occurred: ".concat(e.getMessage()));
return false;
}
callbackContext.success();
return true;
}
Log.e(LOG_TAG, "Called invalid action: "+action);
return false;
}
}
Run Code Online (Sandbox Code Playgroud)
home.js
cordova.define("cordova/plugin/home", function(require, exports, module) {
var exec = require('cordova/exec');
var Home = function() {};
Home.prototype.goHome = function(successCallback, errorCallback) {
return cordova.exec(successCallback, errorCallback, 'Home', 'goHome', []);
};
var home = new Home();
module.exports = home;
});
Run Code Online (Sandbox Code Playgroud)
config.xml中
<plugin name="Home" value="org.apache.cordova.plugin.Home"/>
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
13828 次 |
| 最近记录: |