我可以使用Android模拟器访问我的笔记本电脑web服务器,我使用10.0.2.2:portno 工作得很好。

但当我连接真正的Android手机时,手机浏览器无法连接到我笔记本电脑上的同一个web服务器。手机和笔记本电脑通过USB线连接。如果我运行 adb devices命令,我可以看到我的手机。

我错过了什么?


当前回答

它非常简单,- GOTO命令行(Window + R [type cmd]) - type ipconfig,这将显示您PC的当前IP地址-将该IP地址写在您的Android手机浏览器上:80例如(http://192.168.x.x:80)

Done

localhost将出现在你的手机上

其他回答

Ngrok允许你把本地主机放到临时服务器上,设置非常简单。我在这里提供了一些可以在链接中找到的步骤:

从上面的链接下载ngrok压缩包 拉开拉链 在本地运行服务器并记录端口号 在终端中,进入ngrok所在的文件夹,输入ngrok http[端口号]

您将在终端中看到一个小仪表板,其中有一个指向本地主机的地址。将你的应用指向这个地址,然后构建到你的设备上。

最简单的方法(这对我来说完美无缺)是在0.0.0.0:<port_no>本地托管您的站点,并使用移动设备访问它,在浏览器中使用<local_ipv4_address>:<port_no>/<path>。

要知道您的本地ipv4地址,只需在cmd中键入ipconfig 任何连接到同一网络的设备都可以访问这个url。

即使您的移动设备和电脑通过usb连接,此解决方案也可用:

此时需要使用端口转发功能。 在谷歌chrome inspect窗口(chrome://inspect)可以看到连接的设备。

点击端口fowading按钮,并设置一个随机端口,例如3000到您的笔记本电脑使用的端口,例如8080。

现在从设备上使用localhost:3000来访问笔记本电脑中的localhost:8080(or_whatever_ip:portno)。 您可以在移动浏览器中查看。在移动浏览器中尝试localhost:3000。 确保勾选“端口转发设置”窗口中的“启用端口转发”复选框

使用netconfig xml并在manifest.xml中分配它是最好的解决方法。这将绕过android默认的https限制。

您可以让web服务器在环回接口上侦听,而不是在网络接口上侦听。主要表现为:

在127.0.0.1和localhost(从localhost或Android模拟器)工作 点击192.168.xxx。xxx不能工作,无论是从本地主机,局域网或广域网

我在这里的回答中讨论了更多关于诊断和修复的问题。