跳转至

Android WebView各项使用说明

2023-3-30 更新例子
  • 2023-3-30 更新例子
  • 2022-1-16 创建文档

记录一些webview的设置和操作。

禁止webview处理长按事件

设置OnLongClickListener把长按事件消费掉。

web.setOnLongClickListener(new View.OnLongClickListener() {
    @Override
    public boolean onLongClick(View v) {
        return true;
    }
});

改变字体大小

字体大小的枚举。

    public static enum TextSize {
        SMALLEST(50),
        SMALLER(75),
        NORMAL(100),
        LARGER(125),
        LARGEST(150);

        int value;

        private TextSize(int var3) {
            this.value = var3;
        }
    }

获取WebSettings,然后设置字体大小。

WebSettings st = wv.getSettings();
st.setTextSize(WebSettings.TextSize.LARGER);

m3u8视频

Android webview播放不了m3u8视频。

NotAllowedError: play can only be initiated by a user gesture

设置webview

webViewSettings.setMediaPlaybackRequiresUserGesture(false);

webview打开URL,跳去了系统自带的浏览器

这可能是由于在Android WebView中没有正确配置WebSettings或WebViewClient所导致的。请尝试以下几个步骤:

1.确保已启用JavaScript:

WebSettings webSettings = webView.getSettings();
webSettings.setJavaScriptEnabled(true);

2.设置一个新的WebViewClient:

webView.setWebViewClient(new WebViewClient() {
    @Override
    public boolean shouldOverrideUrlLoading(WebView view, String url) {
        view.loadUrl(url);
        return true;
    }
});

如果上述方法仍无法解决问题,可以尝试添加以下标记以确保WebView不会跳转到系统自带的浏览器:

webView.setWebViewClient(new WebViewClient(){
    @Override
    public boolean shouldOverrideUrlLoading(WebView view, WebResourceRequest request) {
        if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.LOLLIPOP) {
            view.loadUrl(request.getUrl().toString());
        }
        else {
            view.loadUrl(request.toString());
        }
        return false;
    }
});

webView.setWebChromeClient(new WebChromeClient() {
    @Override
    public void onPermissionRequest(PermissionRequest request) {
        request.grant(request.getResources());
    }
});

webView.getSettings().setJavaScriptEnabled(true);
webView.getSettings().setDomStorageEnabled(true);
webView.getSettings().setAllowFileAccess(true);
webView.getSettings().setAllowContentAccess(true);
webView.getSettings().setAllowUniversalAccessFromFileURLs(true);
webView.getSettings().setAllowFileAccessFromFileURLs(true);

参考

本站说明

一起在知识的海洋里呛水吧。广告内容与本站无关。如果喜欢本站内容,欢迎投喂作者,谢谢支持服务器。如有疑问和建议,欢迎在下方评论~

📖AndroidTutorial 📚AndroidTutorial 🙋反馈问题 🔥最近更新 🍪投喂作者

Ads