React Native切换应用后Metro断开连接,OAuth登录调试求助
React Native Android模拟器OAuth登录后保持Metro连接的解决方案
开启后台不暂停调试
模拟器里按Ctrl+M调出开发者菜单,找到「Debugging」分类下的「Don't pause on background」(中文版本是「后台不暂停调试」)并勾选。这样应用跳转到浏览器进入后台时,Metro的调试连接不会被主动切断。重新配置ADB反向代理
跳转浏览器后网络路由可能变化导致连接丢失,重新执行ADB反向代理命令:adb reverse tcp:8081 tcp:8081
可以每次从浏览器返回应用前手动运行,或者把这条命令加到项目的启动脚本里自动执行。改用内置WebView完成OAuth认证
别直接跳系统浏览器,用React Native的WebView组件在应用内加载OAuth授权页面。认证完成后通过WebView的onMessage回调获取授权码,再走后续登录流程。这样应用不会完全切到后台,Metro连接能稳定保持。换用React Native Debugger调试
内置Chrome调试在应用切换后台时容易断连,换成React Native Debugger试试:- 关掉当前的Metro终端和调试窗口
- 打开React Native Debugger,把端口设为8081
- 重新启动Metro:
npx react-native start - 重新运行应用:
npx react-native run-android
这个工具的WebSocket连接稳定性更强,后台切换后不容易断开。
重启Metro和模拟器
偶尔的连接异常可能是临时状态问题,完全关闭Metro终端和模拟器,重新启动模拟器后再启动Metro并运行应用,能解决不少偶发的断连情况。
内容的提问来源于stack exchange,提问作者neizod
相关产品推荐
相关产品推荐

