javascript警报消息在Android应用程序中不起作用

时间:2015-12-25 14:00:06

标签: javascript android webview

我创建了一个具有简单webview功能的android应用程序。在我加载webview的html页面中,我正在使用以下脚本。

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 个答案:

答案 0 :(得分:3)

您需要创建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);