Ionic 2 - 在安卓设备上运行时出现 net::ERR_CONNECTION_TIMED_OUT 错误

4

非常抱歉我的英语不好

我使用Ionic 2为Android构建了一个应用程序。在这个应用程序中,我需要从一个API获取信息,并且在浏览器运行时(ionic serve)它完美地工作。

问题在于当我在我的设备上运行(Android 6.0.1)时,出现以下问题:

net :: ERR_CONNECTION_TIMED_OUT

然后我搜索如何解决这个问题,并尝试了很多方法。

我使用了cordova-plugin-whitelist插件并且我的config.xml看起来像:

<content src="index.html" />
<allow-navigation href="*" />
<allow-intent href="*" />
<access origin="*" subdomains="true" />

我将这段代码放在我的index.html文件中:

<meta http-equiv="Content-Security-Policy" content="default-src *; style-src * 'unsafe-inline'; script-src * 'unsafe-inline' 'unsafe-eval'; img-src * data: 'unsafe-inline'; connect-src * 'unsafe-inline'; frame-src *; media-src *;">

我已经阅读了很多关于这个问题的文档,但是没有找到真正有用的东西。

请问有人可以帮助我吗?

谢谢


你正在使用哪个API? - Oussema Aroua
我使用来自我自己网站的API,它是一个经典的GET请求,用于检查用户的存在:/rest/login,然后使用基本授权。 - Chabrioche
你的 Pi 是托管还是在本地主机上? - Oussema Aroua
不在本地主机上,已托管。 - Chabrioche
@Chabrioche 谢谢您的评论。我感到很荣幸。为了他人的利益,发布了答案。请接受它。谢谢。 - Gandhi
显示剩余2条评论
6个回答

10

我需要做的就是确保ionic cordova run android -l -c -s在我的安卓手机上正常运行。

  1. 我的笔记本电脑和手机在同一个网络中。
  2. 我可以访问实时重载服务器(在我的笔记本电脑上)。例如,http://192.168.1.5:8100可以在我的手机Chrome浏览器上访问。

如果步骤2无法完成,请在Windows 10上执行以下操作,以启用我的笔记本电脑上Node.js的防火墙设置。点击此处查看启用防火墙配置的图片。


Avast互联网安全软件将我的本地网络视为公共网络并阻止了连接。 - Nowdeen
对我有用,并且Ionic DevApp正在运行。 - Prakash Palanisamy

4

错误提示中明显出现了连接性问题。

请确保您要通过应用程序访问的资源在移动浏览器中可以直接访问。如果您确保设备浏览器中可访问该资源,那么应用程序的连接问题肯定会得到解决。祝好运!


请确保您在应用程序中尝试访问的资源首先可以直接在移动浏览器中访问。 我该如何确保? - Tzvi Gregory Kaidanov
例如,如果您正在尝试访问一个URL,请确保您能够在移动浏览器中访问该URL。@TzviGregoryKaidanov - Gandhi

2

Ionic 4解决方案(100%有效):

  • 运行以下命令 - ionic serve --devapp

  • 打开Windows 10的"Windows Defender安全中心"。在防火墙中禁用您的域、私人和公共网络。

  • 同时,在您的devApp中选择“清除所有应用数据”(侧边栏选项)。

现在您可以在真实设备上享受新应用的实时重新加载了!


1
在Windows系统中,这是防火墙问题。禁用防火墙可以解决问题,但不建议这样做。只需将Node.js添加到防火墙例外即可。

1
在Ubuntu中,这个问题有时可能与防火墙有关。我也遇到了这个问题,尝试了一切但都没有用。最后我禁用了我的Ubuntu防火墙,它就像魔法一样运行了。 在Ubuntu中,UFW是默认的防火墙。
您可以通过以下方式禁用它:sudo ufw disable
检查其状态:sudo ufw status
稍后启用它:sudo ufw enable

(请确保设备和系统在同一网络中) 希望这能够帮助您,就像它帮助了我一样。


你太厉害了!我在过去的两天里一直遇到使用Node作为服务器的问题。谢谢你 :) - Pushprajsinh Chudasama

0
将以下行添加到您的confix.xml文件中。
<preference name="loadUrlTimeoutValue" value="700000" />

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接