我的想法是让我的反应原生应用程序更新,其js文件形成网络。在每次加载时(仅当有更新时)。 这有两个方法。
首先是在v8中进行。 使用diffrenet require函数,
myRequire(jsUrl, './offlineLocalJs.js');
myRequire植入基于此answer。
这种方法有两个问题
第二种方法
使用执行http请求的本机IOS模块来获取文件,并更新包文件, 并且javascript保持不变。
有些人如何支持第二种方法。但我对ios devlopment的了解不多。
我很高兴听到有关这个想法和建议的想法 谢谢
答案 0 :(得分:2)
我回答我自己的问题,我应该在反应原生的Github页面上问这个问题。
我通过更改AppDelegate.m中的 jsCodeLocation 解决了这个问题
//AppDelegate.m
//original line (development mode)
jsCodeLocation = [NSURL URLWithString:@"http://localhost:8081/index.ios.bundle"]; change it to
点对您编译的webpack文件进行原生反应,然后上传到您的服务器并将网址插入 jsCodeLocation 变量。
index.ios.bundle 内容实际上是http://localhost:8081/index.ios.bundle?dev=false&minify=true 开发服务器编译版
的内容//Point RN to my complied js file
jsCodeLocation = [NSURL URLWithString:@"http://s3-bucket.com/index.ios.bundle.js"];
此解决方案中缺少的一件事是网络检查。 如果没有可用的互联网,我应该回退到静态/默认版本。
这个解决方案让我能够通过上传新的js包自动更新我的应用程序。
我甚至可以添加更多的npm模块,只要它们是纯粹的js(没有二进制文件)。