Ionic应用PC端运行可连MYSQL,打包APK后同局域网无法连接数据库如何解决
问题排查与解决步骤
- 检查Android网络权限配置
确保AndroidManifest.xml中已添加网络访问权限:<uses-permission android:name="android.permission.INTERNET" /> - 处理Android高版本明文HTTP限制
Android 9及以上系统默认禁止HTTP明文请求,如果你的API用的是局域网HTTP地址(比如http://192.168.x.x),会被系统拦截。解决方法:- 在
res/xml目录下创建network_security_config.xml文件,添加如下配置(将IP替换为你的服务端局域网IP):
<?xml version="1.0" encoding="utf-8"?> <network-security-config> <domain-config cleartextTrafficPermitted="true"> <domain includeSubdomains="true">192.168.x.x</domain> </domain-config> </network-security-config>- 在
AndroidManifest.xml的application标签中添加属性引用该配置:
android:networkSecurityConfig="@xml/network_security_config" - 在
- 调整XAMPP Apache监听配置
- 打开XAMPP Apache的
httpd.conf配置文件,将Listen 127.0.0.1:80修改为Listen 0.0.0.0:80,允许所有IP访问Apache服务 - 检查同文件或
httpd-vhosts.conf中的目录权限配置,将Require local修改为Require all granted,避免局域网访问返回403错误
- 打开XAMPP Apache的
- 关闭服务端防火墙或添加入站规则
先临时关闭服务端电脑的防火墙测试,如果此时手机可以正常访问API,就给防火墙添加入站规则,放行Apache所用的端口(默认80、443)的TCP请求即可 - 核对Ionic代码中的API请求地址
确认代码里的API地址没有写localhost或127.0.0.1,必须填写服务端电脑的真实局域网IP(比如http://192.168.3.12/api/xxx),同时确保手机和服务端处于同一局域网网段,没有VLAN隔离 - 前置测试验证
先打开手机自带浏览器,直接输入你的API接口地址访问,如果无法正常返回数据,说明问题出在网络或服务端配置,和Ionic应用本身无关,先解决该问题后再调试APP
效果参考图
- PC端运行效果:

- 手机端运行效果:

内容的提问来源于stack exchange,提问作者Alejandro
相关产品推荐
相关产品推荐

