我的 Ionic 应用程序无法从 Android 模拟器访问我的本地节点服务器
My Ionic app can't access my local Node server from Android emulator
我第一次尝试 运行 我的 React/Ionic 应用程序在 Android 模拟器上使用 Capacitor。该应用程序应使用 Axios 连接到我的本地节点服务器。
虽然我的应用程序在模拟器上成功启动,但所有服务器请求都失败并显示 Msg: Error: Network Error
这是我执行的步骤:
我将 Axios 配置为连接到 http://10.0.2.2:3001
而不是 localhost
,但请求仍然失败
我在Android模拟器Chrome浏览器中打开urlhttp://10.0.2.2:3001/api
,成功 连接到我的服务器并返回响应
我尝试将以下配置添加到我的 capacitor.config.json 文件中,但我的应用程序仍然失败
"server": {
"allowNavigation": ["10.0.2.2"]
}
您是否有其他建议我应该尝试让我的应用程序连接到我的本地服务器?谢谢
经过搜索,我在另一个SO question中找到了解决方案:
- 问题是因为我的应用程序使用
http
而不是 https
请求,默认情况下 Android 禁止,从 API 级别 28 开始。
为了允许 http
请求,我将 android:usesCleartextTraffic="true"
添加到我的应用的 AndroidManifest.xml
参考:https://developer.android.com/guide/topics/manifest/application-element#usesCleartextTraffic
如果您在云上使用实例,请修改主机文件,在 linux 上,规则是:/etc/hosts
添加这一行:
localhost < ip-public-您的实例>
我第一次尝试 运行 我的 React/Ionic 应用程序在 Android 模拟器上使用 Capacitor。该应用程序应使用 Axios 连接到我的本地节点服务器。
虽然我的应用程序在模拟器上成功启动,但所有服务器请求都失败并显示 Msg: Error: Network Error
这是我执行的步骤:
我将 Axios 配置为连接到
http://10.0.2.2:3001
而不是localhost
,但请求仍然失败我在Android模拟器Chrome浏览器中打开url
http://10.0.2.2:3001/api
,成功 连接到我的服务器并返回响应我尝试将以下配置添加到我的 capacitor.config.json 文件中,但我的应用程序仍然失败
"server": { "allowNavigation": ["10.0.2.2"] }
您是否有其他建议我应该尝试让我的应用程序连接到我的本地服务器?谢谢
经过搜索,我在另一个SO question中找到了解决方案:
- 问题是因为我的应用程序使用
http
而不是https
请求,默认情况下 Android 禁止,从 API 级别 28 开始。
为了允许 http
请求,我将 android:usesCleartextTraffic="true"
添加到我的应用的 AndroidManifest.xml
参考:https://developer.android.com/guide/topics/manifest/application-element#usesCleartextTraffic
如果您在云上使用实例,请修改主机文件,在 linux 上,规则是:/etc/hosts
添加这一行:
localhost < ip-public-您的实例>