修改警报()标题(Android Webview中的Javascript)

修改警报()标题(Android Webview中的Javascript),javascript,android,webview,Javascript,Android,Webview,截图: 是否仍要修改警报框标题?任何帮助都将不胜感激。:) 实际上,您可以使用以下代码将其封装: final Context myApp=this; webView.setWebChromeClient(new WebChromeClient(){ @Override public boolean onJsAlert(WebView view, String url, String message, final android.webkit.JsResult r

截图:


是否仍要修改警报框标题?任何帮助都将不胜感激。:)

实际上,您可以使用以下代码将其封装:

    final Context myApp=this;

    webView.setWebChromeClient(new WebChromeClient(){
    @Override
    public boolean onJsAlert(WebView view, String url, String message, final android.webkit.JsResult result)
    {
        new AlertDialog.Builder(myApp)
        .setTitle("Simmon says...")
        .setMessage(message)
        .setPositiveButton(android.R.string.ok,
                new AlertDialog.OnClickListener()
        {
            public void onClick(DialogInterface dialog, int wicht)
            {
                result.confirm();
            }
        }).setCancelable(false)
        .create()
        .show();
        return true;
    };
    });
代码源


gl@Pointy表示,由于浏览器的安全措施,这是不可能的

是的,这是可能的,我做到了

   webview.setWebChromeClient(new WebChromeClient() {




        public boolean onJsAlert(WebView view, String url, String message, final android.webkit.JsResult result)
        {
            new AlertDialog.Builder(activity)
            .setTitle("Calendário App...")
            .setMessage(message)
            .setPositiveButton(android.R.string.ok,
                    new AlertDialog.OnClickListener()
            {
                public void onClick(DialogInterface dialog, int wicht)
                {
                    result.confirm();
                }
            }).setCancelable(false)
            .create()
            .show();
            return true;
        };
            });

js警报有三种类型:

  • 警报框-带有“确定”按钮继续
  • 确认框-带有确定和取消按钮
  • 提示框-从用户处获取一个值,然后选择确定/取消

  • 警报框使用onJsAlert
  • 对于confirbox,使用onJsConfirm
  • 提示框使用onJsPrompt
我已经添加了onJsConfirm的示例代码


不,你无法控制。浏览器将其作为安全措施。不知道为什么,但在我的应用程序中忽略了此方法。不知道为什么,但在我的应用程序中也忽略了此方法。@LuisA.Florit在我看来,可能是onJsComfirm get调用而不是onJsAlert。
        webViewLayout.setWebChromeClient(new WebChromeClient(){
        @Override
        public boolean onJsConfirm(WebView view, String url, String message, final JsResult result) {

            AlertDialog dialog =new AlertDialog.Builder(view.getContext()).
                    setTitle("Confirm").
                    setIcon(ContextCompat.getDrawable(view.getContext(),R.drawable.image)).
                    setMessage(message).
                    setNegativeButton("No", new DialogInterface.OnClickListener() {
                        @Override
                        public void onClick(DialogInterface dialog, int which) {
                            result.cancel();
                        }
                    }).
                    setPositiveButton("Yes", new DialogInterface.OnClickListener() {
                        @Override
                        public void onClick(DialogInterface dialog, int which) {
                            FlashMessage("JS");
                            result.confirm();
                        }
                    })
                    .create();
            dialog.show();
            return true;
        }
    });