如何在React Native iOS WebView中加载本地文件

时间:2019-09-18 13:39:18

标签: react-native-ios

本地文件未加载到ios中,在android中,使用, react-native-webview版本5.0.1

<WebView
                        source={{ uri: 'ICF-Package/ICFPackage/index.html'}}
                        ref={(webView) => this.webView = webView}
                        originWhitelist={'["*"]'}
                        javaScriptEnabled={true}
                        domStorageEnabled={true}
                        scrollEnabled={false}
                        onLoad={() => this.sendPostMessage()}
                        allowFileAccess={true}
                        allowUniversalAccessFromFileURLs={true}
                        allowFileAccessFromFileURLs={true}
                        useWebKit={true}
                    />  

2 个答案:

答案 0 :(得分:0)

尝试使用

加载本地文件

const FileHTML = require('./Index.html');

<WebView
  source={FileHTML}
  style={{flex: 1}}
 />

你可以这样写

<WebView source={{ html: HTML, baseUrl: 'web/' }} />

此代码对我来说适用于android ios

import {Platform, WebView} from 'react-native';    

<WebView
  source={Platform.OS === 'ios' ? 
    require('../src/assets/your.html') :
    {uri: 'file:///android_asset/your.html'}
  }
  domStorageEnabled
  javaScriptEnabled
/>

答案 1 :(得分:0)

在要访问本地文件的ios中,您需要将它们包括在XCode的Copy Bundle Resources部分中。

  1. 在Xcode的左窗格中单击您的项目名称。
  2. 在中央窗格中,选择您的应用目标
  3. 点击顶部的Build Phases标签
  4. 滚动到Copy Bundle Resources部分,然后单击+
  5. 在列表中查找文件。如果找不到,请单击Add other选项并找到它。
  6. 然后在您的代码中将webview的源属性更改为:
  source={{ uri: 'ICF-Package/ICFPackage/index.html', baseUrl: './'}}

希望这会有所帮助