react 本机文件无法加载,因为其扩展名未在 assetExts 中注册

问题描述 投票:0回答:2

我正在尝试将本地 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>

有人可以帮忙吗?

react-native assets
2个回答
1
投票

这是我的解决方案:

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项目中


0
投票

您能解决这个问题吗?如果可以,请解释一下。我也面临着同样的问题。

© www.soinside.com 2019 - 2024. All rights reserved.