我正在开发基于jQuery mobile的phonegap应用程序。
我正试图在我的应用程序中放置一个按钮,表现得像Android设备上的后退按钮。我不想只需history.back()
,但我想要完全相同的行为,意味着在没有附加处理程序时返回,并在将事件附加到事件backbutton
时执行处理程序。
换句话说,我想在软件中模拟硬件后退按钮(完全相同的行为)
我已尝试过这些代码,但没有成功:
$("#backbtn").click(function(){
var backButtonEvent = document.createEvent('Events');
backButtonEvent.initEvent('backbutton', false, false);
document.dispatchEvent(backButtonEvent);
});
我该怎么办?
答案 0 :(得分:0)
document.addEventListener("deviceready", onDeviceReady, false);
function onDeviceReady(){
var backButtonElement = document.getElementById("backbtn");
backButtonElement .addEventListener("click", buttonCallBack, false);
}
function buttonCallBack(){
document.addEventListener("backbutton", onBackButton, false);
}
function onBackButton(){
// write your stuff
}
尝试上面的代码它将起作用
答案 1 :(得分:0)
在mainActivity类中导入javascriptinterface包
import android.webkit.JavascriptInterface;
在MainActivity Class
中的onCreate方法中添加JavaScript接口super.appView.addJavascriptInterface(new JSInterface(), "sampleproj");
然后定义javascript接口
public class JSInterface{
@JavascriptInterface
public void dispachBackKey() {
dispatchKeyEvent(new KeyEvent (KeyEvent.ACTION_DOWN, KeyEvent.KEYCODE_BACK));
dispatchKeyEvent(new KeyEvent (KeyEvent.ACTION_UP, KeyEvent.KEYCODE_BACK));
}
}
现在在javascript中调用本机方法
window.sampleproj.dispachBackKey();