在使用WebView显示本地的html页面时,像使用图片资源一样使用时:
const source = reuqire('./index.html');
在debug模式下,Android和IOS都可以正常显示。
然而在release模式时,双端在手机上都无法正常显示html页面。
解决方法如下:
Android端:
由于React Native打包资源时不支持html资源的自动打包,所以我们得手动将html资源放到asset目录下,没有的话就自己创建:
android/app/src/main/assets/
之后在代码里引用:
const source = { uri:'file:///android_asset/index.html' }
iOS端:
正常使用如下引用法是没有问题的:
const source = reuqire('./index.html');
但是现在的IOS开发需要做一些处理:
WWDC 15 提出的 ATS (App Transport Security) 是 Apple 在推进网络通讯安全的一个重要方式。在iOS 9 和 OS X 10.11 中,默认情况下非 HTTPS的网络访问是被禁止的。当然,因为这样的推进影响面非常广,作为缓冲,我们可以在 Info.plist 中添加NSAppTransportSecurity 字典并且将 NSAllowsArbitraryLoads 设置为 YES 来禁用 ATS。
具体查看关于 iOS 10 中 ATS 的问题