原文见这里:
在iOS、Android的模拟器或是真机上,React Native使用的是JavaScriptCore,也就是Safari所使用的JavaScript引擎。但是在iOS上JavaScriptCore并没有使用即时编译技术(JIT),因为在iOS中应用无权拥有可写可执行的内存页(因而无法动态生成代码)。在使用Chrome调试时,所有的JavaScript代码都运行在Chrome中,并且通过WebSocket与原生代码通信。此时的运行环境是V8引擎。有如下简单的JSON文件,UTF-8编码,内容没有中文,并且header设置了application/json;charset=UTF-8:
{ "update": true, "url": "http://192.168.191.1/update/bundle.zip" }加载代码如下:
fetch('http://192.168.191.1/update/check_update.json') .then((response) => response.json()) .then((json) => alert(json)) .catch((error) => alert('错误:'+error));debug模式下没有任何问题,但是打成release包时却报错:
代码改成这样也一样:
fetch('http://192.168.191.1/update/check_update.json') .then((response) => response.text()) .then((text) => JSON.parse(text)) .catch((error) => alert('错误:'+error));最后把文件改成ANSI编码就没问题了,真是醉了!
更新index.android.bundle必须打成release包并重启才能看到效果。
转载于:https://www.cnblogs.com/liuxianan/p/react-native-5.html
相关资源:数据结构—成绩单生成器