react native webview加载本地HTML,解决iOS无法加载成功问题

在react native中使用 "react-native-webview": "^13.13.5",加载HTML文件

Android:

将HTML文件放置到android/src/main/assets目录,访问

bash 复制代码
{uri: 'file:///android_asset/markmap/index.html'}

ios:

在IOS中可以直接可以直接放在react native项目下,访问方式如下

bash 复制代码
require('../../assets/markmap.html')

这里遇到一个问题是编译出来的HTML文件中带有单独的js和CSS的时候在iOS中无法加载成功,解决方法是用vite-plugin-singlefile将前端项目导出为单独文件,我的vite.config.js配置如下:

bash 复制代码
import {defineConfig} from 'vite'
import react from '@vitejs/plugin-react'
import {viteSingleFile} from "vite-plugin-singlefile";


// https://vitejs.dev/config/
export default defineConfig({
    plugins: [react(),viteSingleFile()],
    base: './', // 设置为相对路径

})

如果是其他的打包方式也实现同样的功能就行。

完整的代码:

bash 复制代码
           <WebView
                ref={webViewRef}
                source={Platform.OS==='android'?{uri: 'file:///android_asset/markmap/index.html'}:require('../../assets/markmap.html')}
                style={styles.webView}
                originWhitelist={['*']}
                javaScriptEnabled={true}
                domStorageEnabled={true}
                allowFileAccess={true}
                allowFileAccessFromFileURLs={true}
                allowUniversalAccessFromFileURLs={true}

                onMessage={handleMessage}/>
相关推荐
今天没有盐4 分钟前
💕CSS 基础入门指南💕:选择器与文本样式
前端·html·响应式设计
九皇叔叔3 小时前
HTML与CSS基础入门:从语法到页面结构全解析
css·html·1024程序员节
_殊途4 小时前
HTML-CSS项目练习
前端·css·html
β添砖java6 小时前
vivo响应式官网
前端·css·html·1024程序员节
非专业程序员Ping11 小时前
HarfBuzz概览
android·ios·swift·font
诚实可靠王大锤15 小时前
react-native实现多列表左右滑动+滚动TabBar悬停
javascript·react native·react.js·1024程序员节
Daniel_Coder16 小时前
iOS Widget 开发-8:手动刷新 Widget:WidgetCenter 与刷新控制实践
ios·swift·widget·1024程序员节·widgetcenter
奶酪博士18 小时前
【html】每日打卡页面
html·1024程序员节
元直数字电路验证18 小时前
HTML 标签及推荐嵌套结构
前端·javascript·html
charlie11451419118 小时前
HTML 理论笔记
开发语言·前端·笔记·学习·html·1024程序员节