You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

iPhone端Expo调试RN WebView加载本地站点失败(错误-1004)怎么办?

解决React Native WebView在iPhone调试时无法连接本地服务的问题

这个问题我碰到过好多次了,核心就是你的iPhone没法和电脑上的本地服务建立连接,咱们一步步来排查解决:

  • 确认设备在同一Wi-Fi网络
    你的开发电脑和iPhone必须连接同一个局域网Wi-Fi,这是基础前提。如果一个连手机热点、一个连家里Wi-Fi,肯定没法互通。

  • 获取电脑正确的本地IP地址
    别瞎试IP了,找你电脑当前Wi-Fi下的实际IP:

    • Mac:打开「系统设置」→「Wi-Fi」→ 点击Wi-Fi名称旁边的「i」图标,查看「IPv4地址」
    • Windows:按下Win+R输入cmd,打开命令提示符后输入ipconfig,找到「无线局域网适配器 Wi-Fi」下的「IPv4地址」
      注意:10.0.2.2是安卓模拟器专用的回环地址,iPhone完全不适用,别再用这个了。
  • 确保本地服务绑定到0.0.0.0
    很多本地服务默认只绑定localhost,这样只能本机访问,其他设备连不上。你需要修改服务的启动参数,让它绑定到0.0.0.0(允许所有网络接口访问):

    • 比如React项目,启动命令改成:HOST=0.0.0.0 npm start
    • 或者在package.json的scripts里配置:
      "scripts": {
        "start": "HOST=0.0.0.0 react-scripts start"
      }
      
  • 检查防火墙设置
    电脑的防火墙可能会拦截iPhone的连接请求:

    • Windows:打开「Windows Defender防火墙」→「高级设置」→ 添加入站规则,允许TCP协议的3000端口通过
    • Mac:打开「系统设置」→「网络」→「防火墙」→「防火墙选项」,确保你的本地服务(比如Node.js)被允许接收连接,或者临时关闭防火墙测试(调试完记得打开)
  • 先在Safari里测试连通性
    在iPhone的Safari浏览器里输入http://你的电脑IP:3000,如果能正常打开页面,说明网络和服务没问题,再去排查WebView的配置;如果Safari也打不开,那先解决网络/服务的问题。

  • WebView的额外配置
    如果Safari能打开但WebView不行,检查这两个点:

    1. 给WebView添加originWhitelist属性,允许访问本地IP:
      <WebView
        source={{ uri: 'http://你的电脑IP:3000' }}
        originWhitelist={['http://*', 'https://*']} // 调试时宽松设置,正式环境按需限制
      />
      
    2. 配置iOS的网络访问权限:在Expo的app.json里添加NSAppTransportSecurity设置,允许http请求(调试用,正式环境建议改用https):
      "ios": {
        "infoPlist": {
          "NSAppTransportSecurity": {
            "NSAllowsArbitraryLoads": true
          }
        }
      }
      

按这个流程走下来,基本就能解决那个NSURLErrorDomain -1004的错误了。

内容的提问来源于stack exchange,提问作者coffee.ai

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.27 04:03:37