Android WebViewClient与JavaScript Alerts/Prompt
创始人
2024-08-19 08:30:08
0

要在Android WebViewClient中处理JavaScript的Alerts和Prompt,您可以按照以下步骤进行操作:

  1. 创建一个WebViewClient的子类,并重写onJsAlert和onJsPrompt方法。代码示例如下:
public class MyWebViewClient extends WebViewClient {
    
    @Override
    public boolean onJsAlert(WebView view, String url, String message, JsResult result) {
        // 处理JavaScript的Alert
        AlertDialog.Builder builder = new AlertDialog.Builder(view.getContext());
        builder.setMessage(message)
                .setPositiveButton(android.R.string.ok, null)
                .setCancelable(false)
                .show();
        result.confirm(); // 确认弹窗已被处理
        return true;
    }

    @Override
    public boolean onJsPrompt(WebView view, String url, String message, String defaultValue, JsPromptResult result) {
        // 处理JavaScript的Prompt
        AlertDialog.Builder builder = new AlertDialog.Builder(view.getContext());
        builder.setMessage(message);
        final EditText input = new EditText(view.getContext());
        input.setText(defaultValue);
        builder.setView(input);
        builder.setPositiveButton(android.R.string.ok, new DialogInterface.OnClickListener() {
            @Override
            public void onClick(DialogInterface dialog, int which) {
                result.confirm(input.getText().toString()); // 获取用户输入的值并返回给JavaScript
            }
        });
        builder.setNegativeButton(android.R.string.cancel, new DialogInterface.OnClickListener() {
            @Override
            public void onClick(DialogInterface dialog, int which) {
                result.cancel(); // 用户取消输入,返回null给JavaScript
            }
        });
        builder.setCancelable(false);
        builder.show();
        return true;
    }
}
  1. 在您的Activity或Fragment中,初始化WebView,并设置WebViewClient为我们创建的MyWebViewClient,代码示例如下:
WebView webView = (WebView) findViewById(R.id.webView);
webView.setWebViewClient(new MyWebViewClient());

这样,当网页中有JavaScript的Alert或Prompt弹窗时,Android WebViewClient会拦截并处理它们,并显示相应的对话框供用户交互。

相关内容

热门资讯

透视透视!wepoker可以免... 透视透视!wepoker可以免费玩吗(透视)微信小程序开心泉州辅助器(总是是真的辅助app)-哔哩哔...
这一现象值得深思!hhpoke... 这一现象值得深思!hhpoker的辅助是真的吗(透视)新上游通用挂(一直存在有辅助安装)-哔哩哔哩1...
透视透视挂!德普之星透视免费(... 透视透视挂!德普之星透视免费(透视)腾讯欢乐卡五星辅助器(好像有辅助神器)-哔哩哔哩所有人都在同一条...
据监测!德州局脚本(透视)微信... 据监测!德州局脚本(透视)微信小程序嘟嘟十三张脚本(切实真的有辅助辅助器)-哔哩哔哩1、超多福利:超...
事发当天!红龙poker作必弊... 事发当天!红龙poker作必弊指令(透视)微乐自建房怎么提高胜率(一直是真的辅助插件)-哔哩哔哩1、...
透视好友!sohoo poke... 透视好友!sohoo poker辅助器(透视)阿当比鸡有透视吗(确实真的是有辅助下载)-哔哩哔哩1、...
今天上午!pokernow辅助... 今天上午!pokernow辅助工具(透视)小唐家乐园辅助(本来是真的辅助app)-哔哩哔哩1、完成小...
透视脚本!wepoker辅助透... 透视脚本!wepoker辅助透视(透视)四川熊猫辅助软件(一直存在有辅助安装)-哔哩哔哩1、许多玩家...
据报道!wpk安卓下载辅助(透... 据报道!wpk安卓下载辅助(透视)酷玩联盟破解版下载(一直真的有辅助下载)-哔哩哔哩1、酷玩联盟破解...
透视真的!约局吧德州透视(透视... 透视真的!约局吧德州透视(透视)微信小程序财神十三张辅助(其实真的有辅助安装)-哔哩哔哩1、不需要A...