React Native 如何在开发过程中在Expo应用程序中模拟离线模式

of1yzvn4  于 2023-01-27  发布在  React
关注(0)|答案(3)|浏览(251)

我正在开发一个世博会应用程序,我正在使用一些缓存功能。为了测试它们,我必须在离线模式下测试我的应用程序,但如果我关闭WiFi(系统或设备)我的应用根本无法连接到Metro服务器。即使在调试器中将网络设置设为脱机也不起作用,应用程序又一次完全没有加载。我如何在设备中模拟离线模式,同时仍然能够连接到Metro Bundler?

jk9hmnmh

jk9hmnmh1#

我纠结了一会儿才找到答案。通过USB连接!到目前为止我只在iPhone上测试过这个,但应该也适用于Android。
我应该警告说,我使用的是EAS构建,但这也应该与基本博览会工作。
使用基本开发方法(expo start--dev-client),客户端应用程序和服务器通过本地路由器连接。服务器自动侦听本地LAN中可用的IP地址(这就是二维码的作用)。这对开发先离线功能没有帮助,因为一旦你把手机和WiFi断开,连接将丢失,开发应用程序将关闭。2要离线开发,您可以执行以下操作:
1.运行以下命令:ifconfig -a。记下列表中编号最高的网络接口,例如en7
1.使用usb数据线连接手机
1.重新运行ifconfig,两个新的网络接口应显示最大的编号。选择第二大的。例如en8。记下它的inet ip地址
1.在将运行开发服务器的shell中运行export EXPO_DEVTOOLS_LISTEN_ADDRESS=<ip address here>
1.运行export REACT_NATIVE_PACKAGER_HOSTNAME=<ip address here>

  1. expo start --dev-client正常
    1.通过二维码广告的IP地址现在将是您在上面放置的USB连接的IP,因此移动客户端应用程序将通过USB电缆到达您计算机上的开发服务器。
    1.在手机上打开飞机模式,只要你想。地铁,热重装,调试,所有保持功能,事实上通常比通过路由器快得多。享受吧!
wljmcqd8

wljmcqd82#

我也遇到过同样的问题,在网上找不到简单的解决方案。幸运的是,我尝试了以下方法,效果很好:
1.连接物理设备。我在模拟器上尝试了一段时间,但失败了。
1.在localhost上启动Expo,而不是默认情况下在LAN上启动Expo:expo start --localhost.
1.禁用设备上的WiFi/Hive连接。
1.查看与Metro Bundler的连接是否仍在工作。
1.像你习惯的那样工作。

stszievb

stszievb3#

如果你是在Android设备上测试,以下步骤对我来说很有效:
1.通过USB电缆连接物理设备。请确保已打开开发人员模式。
1.使用expo start --localhost在本地主机中启动expo。
1.使用adb,设置一个连接,这样你的设备就可以监听运行开发服务器的端口。这可以使用命令adb reverse tcp:[port] tcp:[port]来完成。例如,假设你的服务器运行在127.0.0.1:19000上,运行命令
亚洲开发银行反向传输协议:19000传输协议:19000
1.现在你应该可以在没有互联网连接的情况下运行expo中的应用程序。

相关问题