我将本地文件存储在xcode中,文件正在模拟器中加载,而没有在ios设备中加载
我使用react-native-webview版本5.0.1,在我的webview中,im通过{uri:'ICF-Package / ICFPackage / index.html'}
<WebView
source={Platform.OS === 'ios' ?
{uri: 'ICF-Package/ICFPackage/index.html'} :
{ uri: 'file:///android_asset/ICF-Package/ICFPackage/index.html' }
}
ref={(webView) => this.webView = webView}
originWhitelist={'["*"]'}
javaScriptEnabled={true}
domStorageEnabled={true}
startInLoadingState={true}
useWebKit = {true}
//scalesPageToFit={true}
scrollEnabled={false}
onLoad={() => this.sendPostMessage()}
allowFileAccess={true}
allowUniversalAccessFromFileURLs={true}
allowFileAccessFromFileURLs={true}
allowsInlineMediaPlayback={true}
mediaPlaybackRequiresUserAction={true}
/>
我没有收到任何错误消息,但文件未在真实设备中加载
答案 0 :(得分:1)
也许可以在您的设备上运行https://stackoverflow.com/a/48572797/1256697
来帮助您更深入地调试WebView。但是对于本地文件而言,解决方法很少,您可以尝试使用'html'参数代替IOS的'uri'参数:
const myHTML = require('./ICF-Package/ICFPackage/index.html');
<WebView
source={PolicyHTML}
style={{flex: 1}}
/>
另请参阅:https://aboutreact.com/load-local-html-file-url-using-react-native-webview/
但是也许为IOS解决它的最干净的方法是将html文件的副本放在Project > resources > index.html
中,并将其链接到您的Webview:
<WebView
style={{flex: 1}}
originWhitelist={['*']}
source={'./resources/index.html'}
javaScriptEnabled={true}
domStorageEnabled={true}
/>