我已经在Android中创建了一个网页视图,在其中我正在加载我的html file.At,单击按钮的时间我正在显示一个类似于警告对话框的弹出窗口,这是用html本身开发的。现在的问题是,只要我按下后退按钮在安卓手机上,应用程序返回到以前的page.But与相同的行为,只有对话框应该被关闭,应用程序应该在同一页上。我怎样才能做到这一点?谢谢
发布于 2014-02-12 23:44:45
我认为你不需要JavascriptInterface (就像@Henil发布的那样)。我会这样做:
在Java -onBackPressed中:
if (webView.getUrl.equals("yourPopupUrl.com")) {
webView.loadUrl("javascript:goAwayPopup();");
return;
}在JS中:
function goAwayPopup() {
var popUp = document.getElementById("popUp"); // in my case popUp is just a <div>
var isVisible = popUp .offsetWidth > 0 || popUp .offsetHeight > 0;
if (isVisible) {
popUp.style.display = 'none';
}
}编辑:
使用JavascriptInterface的解决方案:
在对话框弹出时调用的JS - function中:
function popUp() {
if (typeof Android != "undefined"){
if (Android.popUp!= "undefined") {
Android.popUp();
}
}
}在Java中:
在活动中定义内部类和布尔型字段
声明连接到webview的桥
覆盖onBackPressed
private boolean isPopUpVisible = false;
// some code...
webView.addJavascriptInterface(new MyJavascriptBridge(), "Android");
// some code...
class MyJavascriptBridge {
public void popUp() {
if (isPopUpVisible)
isPopUpVisible = false;
else
isPopUpVisible = true;
}
}onBackPressed:
if (isPopUpVisible) {
webView.loadUrl("javascript:goAwayPopup();");
return;
}JS,再一次:
function goAwayPopup() {
// close alert here...
popUp(); // sets isPopUpVisible to false
}以下是关闭警报的帖子:How to "auto close" Alert boxes
发布于 2014-02-12 20:08:35
使用java script接口并从该接口处理html页面。
https://stackoverflow.com/questions/21727453
复制相似问题