需要在javascript或jquery中的Android或Iphone移动设备后退按钮点击事件



目前正在使用以下插件开发单页应用程序(HTML5):
-Sammy.js
-Knockout.js
-需要.js
-Jquery.js

此应用程序是为Android、Iphone&Windows移动设备,很多场景都是基于设备后退按钮或浏览器后退按钮的点击,有人知道如何处理设备后退按钮和浏览器后退按钮点击事件吗?由于这是SPA框架,因此导航发生在Sammy.js处理的路由哈希更改上,但在每次导航时,Sammy.befor事件都被调用,无法区分浏览器返回或设备返回或其简单导航。

使用下方的代码

class WebAppInterface {
Context mContext;
WebAppInterface(Context c) {
    mContext = c;
}
@JavascriptInterface
public void showToast(String toast) {
    Toast.makeText(mContext, toast, Toast.LENGTH_SHORT).show();
}
@JavascriptInterface
public void loginReady() {
    ((Activity)mContext).runOnUiThread(new Runnable() {
        @Override
        public void run() {
            WebView wv = (WebView) ((Activity) mContext).findViewById(R.id.webView);
            wv.loadUrl("javascript:setDeviceInfo('" + CommonUtilities.deviceInfo(mContext) + "');");
        }
    });
}
@JavascriptInterface
public void exitApp() {
    ((Activity) mContext).finish();
}
}

在您的活动中添加JavaScriptInterface并覆盖BackPressed

webView.addJavascriptInterface(new WebAppInterface(this), "Android");
@Override
public void onBackPressed() {
    webView.loadUrl("javascript:goBack();");
}

在您的JavaScript 中

function goBack() {
 Android.exitApp();
}

最新更新