You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

React Native WebView在Android端无法正常渲染问题求助

解决Android端WebView加载本地HTML显示纯文本的问题

可行修复方案

  • 调整本地HTML加载方式
    Android端直接用require加载HTML文件可能无法正确解析,换用uri指定路径的方式:
import { WebView } from 'react-native-webview';

export default () => (
  <WebView 
    source={{ uri: require('./assets/web/index.html').uri }} 
  />
);

或者通过expo-file-system读取文件内容后传入html属性:

import { WebView } from 'react-native-webview';
import { readFile } from 'expo-file-system';
import { useEffect, useState } from 'react';

export default () => {
  const [htmlContent, setHtmlContent] = useState('');

  useEffect(() => {
    const loadHtml = async () => {
      const content = await readFile(require('./assets/web/index.html').uri, 'utf8');
      setHtmlContent(content);
    };
    loadHtml();
  }, []);

  return <WebView source={{ html: htmlContent }} />;
};
  • 检查HTML文件格式与编码
    确保index.html采用UTF-8编码,且包含标准DOCTYPE声明——Android WebView对格式兼容性更严格,缺失声明可能导致解析异常:
<!DOCTYPE html>
<html lang="en">
<head>
  <meta charset="UTF-8">
  <meta name="viewport" content="width=device-width, initial-scale=1.0">
</head>
<body>
  <!-- 页面内容 -->
</body>
</html>
  • 添加WebView必要配置属性
    给Android端WebView开启DOM存储、JavaScript支持,优化渲染层类型:
<WebView
  source={{ uri: require('./assets/web/index.html').uri }}
  domStorageEnabled={true}
  javaScriptEnabled={true}
  androidLayerType="hardware"
/>
  • 升级react-native-webview版本
    你使用的11.23.0版本存在已知Android端兼容问题,升级至最新稳定版(如13.x系列)可修复部分历史bug。

内容的提问来源于stack exchange,提问作者lacaci3709

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.10 20:25:17