我正在尝试将本地 html 文件加载到 webview 中,但出现此错误:
错误:无法加载“assets/html/lxHtmlEditor.js”,因为其扩展名未在 assetExts 中注册
错误:无法加载“assets/html/lxHtmlEditor.css”,因为其扩展名未在 assetExts 中注册
这是我项目中的资产 html 文件:
这是我的地铁配置:
const defaultAssetExts = require("metro-config/src/defaults/defaults").assetExts
module.exports = {
transformer: {
getTransformOptions: async () => ({
transform: {
experimentalImportSupport: false,
inlineRequires: true,
},
}),
},
resolver: {
assetExts: [ ...defaultAssetExts, "css","js"]
}
};
我的网络视图屏幕:
<WebView
ref={require('...')}
source={WebViewFile}
这是 html 内容文件:
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="utf-8" />
<meta name="viewport" content="width=device-width, height=device-height, initial-scale=1.0, minimum-scale=1, maximum-scale=1, user-scalable=no" />
<link rel="stylesheet" href="resources/dx/dx.material.blue.dark.css">
<link rel="stylesheet" href="lxHtmlEditor.css">
</head>
<body class="dx-theme-background-color">
<div id="dxHtmlEditor"></div>
<script src="resources/jquery.min.js"></script>
<script src="lxHtmlEditor.js"></script>
<script src="resources/dx/dx-quill.min.js"></script>
<script src="resources/dx/dx.all.js"></script>
</body>
</html>
有人可以帮忙吗?
这是我的解决方案:
let initiateSource = Platform.OS === 'ios'
? require('../../assets/html/LxHtmlEditor.html')
: { uri: 'file:///android_asset/html/LxHtmlEditor.html', baseurl: 'file:///android_asset/html' }
注意,
LxHtmlEditor
必须放入IOS/Android项目中
您能解决这个问题吗?如果可以,请解释一下。我也面临着同样的问题。