如何以编程方式触发cordova的backbutton事件

时间:2016-03-03 07:00:39

标签: jquery cordova jquery-mobile

我正在开发基于jQuery mobile的phonegap应用程序。 我正试图在我的应用程序中放置一个按钮,表现得像Android设备上的后退按钮。我不想只需history.back(),但我想要完全相同的行为,意味着在没有附加处理程序时返回,并在将事件附加到事件backbutton时执行处理程序。

换句话说,我想在软件中模拟硬件后退按钮(完全相同的行为)

我已尝试过这些代码,但没有成功:

$("#backbtn").click(function(){
    var backButtonEvent = document.createEvent('Events');
    backButtonEvent.initEvent('backbutton', false, false);
    document.dispatchEvent(backButtonEvent);
});

我该怎么办?

2 个答案:

答案 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();