我开始为iOS和Android构建react本机应用程序。我已经阅读了本机应用程序的文档,但现在有一件事我不明白:
react-native app是否完全是原生应用程序?
他们在反应原生中说,它会是。那我为什么问这个问题呢?好吧,我找到了通过https://github.com/Microsoft/react-native-code-push提出问题的理由。根据代码推送,他们能够动态更新应用程序。这是通过更新应用程序的javascript部分来完成的。但是等等,如果应用程序是真正的本机应用程序,那么在应用程序的最终版本中应该没有任何javascript,我是对的吗?那么他们是怎么做到的呢?他们是在代码推送服务器上编译应用程序,然后将编译后的应用程序发送给用户还是什么?这真的让我感到担心的是,本机应用本身并不完全是原生应用。
CodePush插件可让您的JavaScript和图像与发布到CodePush服务器的更新保持同步,从而有助于在最终用户面前立即改进产品。通过这种方式,您的应用可以获得离线移动体验的好处,以及一旦可用,就可以获得侧面加载更新的“类似网络”的敏捷性。这是双赢的!
此外,我怀疑这是因为他们在代码推送文档中也说,他们无法更新本机应用程序的本机部分:
注意:任何触及本机代码的产品更改(例如,修改AppDelegate.m / MainActivity.java文件,添加新插件)都无法通过CodePush分发,因此必须通过相应的商店进行更新。
如果react-native app完全是原生的,那么最后所有代码都应该是本机代码。所以我真的不明白为什么更新本机本机代码比编译为本机代码更难?