WebView和localhost

时间:2010-12-02 15:05:13

标签: android webview

我在我的WebView中获取了google.com,但我没有得到我的localhost。 有人能帮助我吗?

6 个答案:

答案 0 :(得分:28)

请改用10.0.2.2。这是一个特殊的IP地址,仿真器会在您的开发机器上路由到本地主机。假设模拟器和Web服务器在同一台机器上运行。

答案 1 :(得分:8)

确保使用完整的Urls加载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

答案 2 :(得分:2)

只需键入localhost名称和端口,如下所示:http://127.0.0.1:80

答案 3 :(得分:1)

尝试使用实际的IP [如果需要,使用端口号]而不是localhost。

答案 4 :(得分:1)

我创建了一个网站,并使用IIS在我的本地计算机上发布,我尝试使用WebView在Android模拟器中访问此网站:

  

<template> element of Web Components

与OP的结果相同。

我改为:

  

http://localhost:83

并且工作了。

答案 5 :(得分:0)

如果您使用物理设备运行,那么,

  1. 确保您的网站在 192.168.x.xxx:port 上运行

  2. 在您的活动中设置完整网址,例如,

    mwebView.loadUrl("http://192.168.1.107:8000/");

  3. 添加

    android:usesCleartextTraffic="true"

    在 AndroidManifest.xml 中修复因不使用 https 导致的“不允许明文”错误

如果在模拟器中,那么,

  1. 在本地主机 (127.0.0.1:port) 中托管网站

  2. 用于网址

    mwebView.loadUrl("http://127.0.0.1:3000");

  3. 上一步

(请确保在发布前删除清单权限。否则会导致您的应用存在安全问题。)