/ react native

React Native跨平台移动应用开发课程答疑

本文是网易云课堂课程 React Native跨平台移动应用开发 的学员问题整理和解答。大家可以在课程讨论区里提交问题,我会不定期的对问题汇总和整理,并在这里作解答。

环境搭建

  1. macOS里安卓模拟器跟Docker运行冲突
    如果安卓模拟器启用了HAXM优化,由于Docker也使用了macOS的虚拟化系统,则会出现冲突。该问题尚待解决,具体可查看Issue Docker for Mac conflict with Android emulator

  2. 安装应用到小米手机上调试失败
    MIUI优化会阻止调试时安装应用到小米手机。打开手机,依次进入 设置 > 其它高级设置 > 开发者选项,找到“启用MIUI优化”选项,关闭即可。具体可参见Issue Failed to establish session

网络请求

  1. 安卓5.0以下无法请求HTTPS服务
    安卓5.0以下的TLS版本比较老,某些HTTPS服务器不支持,比如“Caddy”会报“tls: client offered an unsupported, maximum protocol version of 300”错误。可以通过检查“Platform.OS == 'android' && Platform.Version < 21”是否为true,来判断是否为安卓5.0以下版本。如果是则使用HTTP协议,当然服务端要同时支持HTTP和HTTPS。如果在一个域名下支持两种协议有困难,可以分开使用不同域名。

  2. iOS下通过“NetInfo.isConnected.fetch”接口获取网络状态始终得到false
    这是RN的一个已知Bug,详见Issue iOS: NetInfo.isConnected returns always false 。可以不使用fetch接口,只使用监听接口“NetInfo.isConnected.addEventListener”来获取网络状态。