我有一个带有webview的Android应用程序,它会显示一个包含大量控件的表单。点击其中一个控件会导致显示弹出窗口。有没有办法检测网页浏览中当前是否有活动的弹出窗口?
答案 0 :(得分:0)
我做了两个假设,因为这个问题有些模糊:
案例1: 我可以想办法解决这个问题。
通过android文档here,您可以调用isShowing()方法来确定是否显示对话框(弹出窗口),它将返回true。
另一种方式。
通过有限的信息...您是否尝试过设置实现Web界面类并调用一个函数来指示您的对话框是否正在显示?像这样。
public class WebAppInterface {
Context mContext;
/** Instantiate the interface and set the context */
WebAppInterface(Context c) {
mContext = c;
}
/** inform user that a dialog is being displayed */
@JavascriptInterface
public boolean dialogIsShowing() {
// Toast.makeText(mContext, "the dialog is showing!", Toast.LENGTH_SHORT).show();
return true
}
}
...
//code embeded with html to display your dialog
<script type="text/javascript">
function showCranialsurgesDialog() {
Android.dialogIsShowing()
}
</script>
//handle the result of the dialog showing
if (dialogIsShowing()==true){
//do something
}
对于案例2:在广告中显示弹出窗口
我最好的猜测是使用:
&#39; webViewSettings.setJavaScriptCanOpenWindowsAutomatically(假)&#39;方法。这会阻止窗口自动打开,理论上没有经验可能会阻止您的问题。该文档为 here
如果案例1是你坚持的话,那么这也许会有所帮助。 CLICK ME
希望有所帮助, 强尼2盘子
答案 1 :(得分:0)
您可以在mainActivity上使用事件
public void onWindowFocusChanged (boolean hasFocus)
{
WebView view = getCurrentFocus();
String url = view.getUrl() ;
}
并连续两次检查该网址是否相同