React Native - Android和IOS之间的差异

3

构建iOS和Android应用程序的代码是相同的还是不同的?我知道有两个单独的文件,一个是.ios,一个是.android,但这大概就是我的知识范围了。这是为React Native设计的。谢谢!

2个回答

5
构建Android和iOS应用的基本设置相同,但一旦开始开发应用程序,就会有一些区别。根据我的经验,我们可能会跨平台使用约80%的代码。我听说过其他人使用高达90%,但通常听到的数字是85%左右。
要跨平台使用代码,您只需将代码从.ios.js或.android.js文件复制并粘贴到另一个文件中即可。只要没有特定于平台的组件,它就应该可以工作。
还有:
  1. 有一些模块是专门为iOS构建的,还有一些是专门为Android构建的,其中一些可以跨平台使用。例如,ActivityIndicatorIOS (https://facebook.github.io/react-native/docs/activityindicatorios.html#content) 是一个iOS样式的元素,但如果您查看组件本身,您将会看到 ActivityIndicatorIOS.android.js 和 ActivityIndicatorIOS.ios.js 两个文件,因此它至少应该可以跨平台使用,但在Android上UI可能不是您所期望的。

  2. 如果您安装了需要访问任何本地功能的插件,例如使用自定义字体,您需要单独在每个平台上做一些工作才能使其在每个平台上正常工作,并且它不能跨平台使用。

  3. Bridging 对于每个平台都是完全不同的,尽管这可能不是您需要担心的事情,除非您需要做一些 React Native 无法直接支持的事情。

  4. 要在IOS中进行构建,您需要一台Mac和Xcode。要在Android中进行构建,您需要android SDK和某种类型的模拟器(我使用 Genymotion)。但请记住,目前为止,您不能在Windows机器上开发iOS,除非您使用类似 ExponentJS 的工具,但如果您有一台Mac,您可以进行跨平台开发。


你是用电脑来构建这些应用程序的吗? - Jamie Hutber

0

后台处理是我最初没有意识到的一个重要问题,因为我一开始是在iOS上构建的。我使用Redux-Observable并连接到一个定期发送消息的BLE设备。如果我的应用程序在后台运行,iOS会继续工作并获取消息并触发其他epics。但是,在Android中,当应用程序在后台时,情况并非如此。我从本地ble模块获取我的消息,然后直到应用程序返回前台才会发生任何事情:(发现这一点后,我的架构发生了巨大变化。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接