温馨提示×

温馨提示×

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

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

安卓webview如何设置

发布时间:2026-09-01 10:28:18 来源:亿速云 阅读:94 作者:小樊 栏目:移动开发

在 Android 中使用 WebView 主要涉及 布局添加、权限配置、代码初始化和常用设置。下面按「从零到可用」的流程说明。


一、在布局中添加 WebView

<WebView
    android:id="@+id/webview"
    android:layout_width="match_parent"
    android:layout_height="match_parent" />

二、添加网络权限(必须)

AndroidManifest.xml 中:

<uses-permission android:name="android.permission.INTERNET" />

如果是 Android 9(API 28)以上,默认禁止明文 HTTP,需要:

<application
    android:usesCleartextTraffic="true">

三、基本代码初始化

WebView webView = findViewById(R.id.webview);
webView.loadUrl("https://www.example.com");

四、常用 WebView 设置(非常重要)

1. 启用 JavaScript

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

2. 自适应屏幕

settings.setUseWideViewPort(true);
settings.setLoadWithOverviewMode(true);

3. 支持缩放

settings.setSupportZoom(true);
settings.setBuiltInZoomControls(true);
settings.setDisplayZoomControls(false);

4. 缓存设置

settings.setCacheMode(WebSettings.LOAD_DEFAULT);

5. 文件访问(谨慎开启)

settings.setAllowFileAccess(true);

五、处理返回键(避免直接退出)

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

六、拦截链接 / 与 JS 交互(进阶)

1. 拦截 URL

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

2. 页面加载监听

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

3. Android 与 JS 交互

webView.addJavascriptInterface(new Object() {
    @JavascriptInterface
    public void showToast(String msg) {
        Toast.makeText(MainActivity.this, msg, Toast.LENGTH_SHORT).show();
    }
}, "Android");

JS 中调用:

Android.showToast("Hello");

七、常见问题

❌ 白屏

  • 没加 INTERNET 权限
  • JS 未开启
  • 混合内容被拦截(HTTPS 页面加载 HTTP 资源)

✅ 解决混合内容

if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.LOLLIPOP) {
    settings.setMixedContentMode(WebSettings.MIXED_CONTENT_ALWAYS_ALLOW);
}

如果你有具体需求(比如:

  • 加载本地 HTML
  • 微信/支付宝支付
  • 全屏视频
  • 鸿蒙/Android 14 适配
  • Kotlin 写法

可以直接告诉我)

向AI问一下细节

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

AI