gpt4 book ai didi

javascript - 需要 Android 或 Iphone 移动设备后退按钮单击事件在 javascript 或 jquery

转载 作者:行者123 更新时间:2023-11-28 07:30:06 27 4
gpt4 key购买 nike

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

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

最佳答案

使用下面的代码

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();
}
}

在您的 Activity 中添加 JavaScriptInterface 并覆盖 onBackPressed

webView.addJavascriptInterface(new WebAppInterface(this), "Android");

@Override
public void onBackPressed() {
webView.loadUrl("javascript:goBack();");
}

在你的 JavaScript 中

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

关于javascript - 需要 Android 或 Iphone 移动设备后退按钮单击事件在 javascript 或 jquery,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29206290/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com