【发布时间】:2022-03-19 22:15:41
【问题描述】:
我在我的 WebView 中获取了 google.com,但没有获取到我的本地主机。 有人可以帮帮我吗?
【问题讨论】:
-
你的意思是本地主机的“环回接口”吗?您的 android 上没有运行网络服务器。
-
你是用模拟器还是真机,请注明
我在我的 WebView 中获取了 google.com,但没有获取到我的本地主机。 有人可以帮帮我吗?
【问题讨论】:
改用 10.0.2.2。这是模拟器路由到您的开发机器上的本地主机的特殊 IP 地址。假设模拟器和网络服务器在同一台机器上运行。
【讨论】:
确保您正在加载带有完整 URL 的 WebView。
http://www.google.com
http://10.0.2.2/
而不是:
www.google.com
google.com
所有这些都将在使用浏览器时工作,但您必须为 WebView 提供完整的有效 url。把头撞在键盘上一个小时才弄明白。
如果您在模拟器中遇到连接问题,请尝试覆盖构建路径中的 dns。
Window > Preferences > Android > Launch
Default emulator options: -dns-server 8.8.8.8
【讨论】:
我创建了一个网站并使用 IIS 在我的本地计算机上发布它,我尝试使用 WebView 在 android 模拟器中访问该网站:
结果与 OP 相同。
我改成:
并且工作了。
【讨论】:
尝试您的实际 ip [如果需要,使用端口号] 而不是 localhost。
【讨论】:
只需像这样输入 localhost 名称和端口:http://127.0.0.1:80
【讨论】:
如果你使用物理设备运行,那么,
确保您的网站在 192.168.x.xxx:port 上运行
在你的activity中设置完整的url,比如,
mwebView.loadUrl("http://192.168.1.107:8000/");
添加
android:usesCleartextTraffic="true"
在 AndroidManifest.xml 中修复因不使用 https 而导致的“不允许明文”错误
如果在模拟器中,那么,
在 localhost (127.0.0.1:port) 中托管网站
网址
mwebView.loadUrl("http://127.0.0.1:3000");
之前的第三步
(确保在发布前删除清单权限。否则会影响您的应用程序的安全问题。)
【讨论】:
我添加了本地服务器的 IP 地址,它工作正常。 您可以通过转到
找到您的IP地址type> ipconfig
现在,添加 Webview URL 中显示的 ipv4 IP 地址。它会正常工作的。
【讨论】: