温馨提示×

温馨提示×

您好,登录后才能下订单哦!

密码登录×
登录注册×
其他方式登录
点击 登录注册 即表示同意《亿速云用户服务条款》

安卓webview怎么监听

发布时间:2026-10-10 22:35:18 来源:亿速云 阅读:102 作者:小樊 栏目:移动开发

在 Android 的 WebView 中,“监听”通常指以下几类场景。我按常见需求给你系统讲一下:


一、监听网页加载状态(最常用)

1️⃣ 监听加载开始 / 结束 / 失败

webView.setWebViewClient(new WebViewClient() {
    @Override
    public void onPageStarted(WebView view, String url, Bitmap favicon) {
        // 页面开始加载
    }

    @Override
    public void onPageFinished(WebView view, String url) {
        // 页面加载完成
    }

    @Override
    public void onReceivedError(WebView view, WebResourceRequest request, WebResourceError error) {
        // 加载失败
    }
});

二、监听 WebView 内部事件(如弹窗、URL跳转)

2️⃣ 拦截 URL(比如监听特定协议)

webView.setWebViewClient(new WebViewClient() {
    @Override
    public boolean shouldOverrideUrlLoading(WebView view, String url) {
        if (url.startsWith("myapp://")) {
            // 自定义协议监听
            return true;
        }
        return false;
    }
});

三、监听 JS 调用 Native(JSBridge)

3️⃣ Android 监听 JS 调用

webView.addJavascriptInterface(new Object() {
    @JavascriptInterface
    public void onEvent(String data) {
        // JS 调用:window.android.onEvent("xxx")
    }
}, "android");

JS 端:

window.android.onEvent("hello");

四、Native 调用 JS 并监听返回

4️⃣ Android 调用 JS

webView.evaluateJavascript("jsFunction()", value -> {
    // 监听 JS 返回值
});

五、监听返回键(WebView 返回)

@Override
public void onBackPressed() {
    if (webView.canGoBack()) {
        webView.goBack();
    } else {
        super.onBackPressed();
    }
}

六、监听滚动 / 手势(高级)

webView.setOnTouchListener((v, event) -> {
    // 监听触摸
    return false;
});

七、监听进度(加载百分比)

webView.setWebChromeClient(new WebChromeClient() {
    @Override
    public void onProgressChanged(WebView view, int newProgress) {
        // 进度 0~100
    }
});

总结

监听类型 使用方式
页面加载 WebViewClient
URL 拦截 shouldOverrideUrlLoading
JS → Native addJavascriptInterface
Native → JS evaluateJavascript
进度 WebChromeClient
返回键 onBackPressed

如果你指的是 “某个具体监听”(比如监听某个按钮点击、监听网络、监听 H5 事件),可以直接告诉我场景,我给你写完整示例。

向AI问一下细节

免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。

AI
助
手