JavaScript警告消息在Android应用程序中无法正常工作。

3

我已经创建了一个带有简单webview功能的Android应用程序。在我的html页面中,webview加载了以下脚本。

var message="!!YOU CANNOT COPY ANY TEXT OR IMAGE FROM THIS APP!";
  function clickIE4()
  {
    if (event.button==2)
    {
      alert(message);
      return false;
    }
  }
  function clickNS4(e)
  {
    if (document.layers||document.getElementById&&!document.all)
    {
      if (e.which==2||e.which==3)
      {
        alert(message);
        return false;
      }
    }
  }

  if (document.layers)
  {
    document.captureEvents(Event.MOUSEDOWN);
    document.onmousedown=clickNS4;
  }
  else if (document.all&&!document.getElementById)
  {
    document.onmousedown=clickIE4;
  }
    document.oncontextmenu=new Function("alert(message);return false")
//for disable select option
//document.onselectstart = new Function("alert(message);return false");

当我在Android WebView应用程序中打开时,它不显示警告消息。在普通浏览器中打开时可以正常工作。


1
请添加用于WebView的Java代码。 - Tasos
好的..但是哪个函数适用于我??? - Pt. Raman Sharma
1个回答

4

您需要创建WebChromeClient并将其设置到WebiView中。还需要重写onJsAlert方法。

     WebChromeClient webChromeClient = new WebChromeClient() {
                @Override
                public boolean onJsAlert(WebView view, String url, String message, final JsResult result) {

                    new AlertDialog.Builder(context)
                            .setMessage(message)
                            .setPositiveButton(android.R.string.ok,
                                    new DialogInterface.OnClickListener() {
                                        public void onClick(DialogInterface dialog, int which) {
                                            result.confirm();
                                        }
                                    })
                            .create()
                            .show();

                    return true;
                }
    }

  webView.setWebChromeClient(webChromeClient);

谢谢!顺便说一下,我了解到有三种不同的JS对话框:JsAlert、JsPrompt和JsConfirm。因此,对于任何正在寻找相关信息的人来说,也许这些信息会有所帮助——我必须覆盖JsConfirm以解决我正在尝试解决的问题。 - Aba

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接