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

CapacitorJS打包的Android App无法连接本地Node.js后端问题咨询

修复方案

Web端访问正常说明后端业务逻辑无异常,移动端连接失败是本地环境网络映射、系统网络安全规则差异导致,按以下步骤调整:

  • 替换错误的本地请求地址:移动端环境中localhost/127.0.0.1指向设备自身,而非运行后端的开发电脑,需要按运行环境替换基地址:
    • 安卓模拟器:使用安卓预留的宿主电脑映射地址10.0.2.2,后端请求地址改为http://10.0.2.2:3000
    • 实体真机:将手机与开发电脑接入同一局域网,查询开发电脑的局域网IP(Windows执行ipconfig、Mac/Linux执行ip a查看,通常为192.168.x.x段地址),后端请求地址改为http://<开发电脑局域网IP>:3000,同时放开电脑防火墙对3000端口的入站拦截。
  • 调整后端服务监听范围:Express默认可能仅绑定本地回环地址,仅允许本机访问,需要将启动监听的配置改为绑定所有网卡,确保同局域网设备、模拟器可访问:
// 调整监听配置
app.listen(3000, '0.0.0.0', () => {
  console.log('服务已启动,支持局域网访问')
})
  • 解除安卓端明文HTTP请求限制:安卓9及以上版本默认拦截所有非HTTPS的明文请求,本地调试用的HTTP地址会被系统直接阻断,打开安卓工程路径下的android/app/src/main/AndroidManifest.xml,在<application>标签中添加android:usesCleartextTraffic="true"属性:
<application
    android:name=".MainApplication"
    android:allowBackup="true"
    android:icon="@mipmap/ic_launcher"
    android:label="@string/app_name"
    android:usesCleartextTraffic="true"> <!-- 新增该行配置 -->
    <!-- 其他原有配置 -->
</application>
  • 核对CORS中间件挂载顺序:你当前的CORS配置允许所有源携带凭证访问,逻辑本身没有问题,但需要确保app.use(cors(...))的代码写在所有业务路由、接口路由定义之前,否则配置不会对后置路由生效。

如果后续调试iOS端,除上述地址替换、服务监听配置外,还需要在iOS工程的Info.plist文件中添加NSAppTransportSecurity配置,放开本地HTTP请求权限即可。

内容的提问来源于stack exchange,提问作者Andrei Bogdan

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.29 17:21:10