android webview加载来自自己设备的http内容(localhost)

时间:2015-04-11 19:34:47

标签: android webview android-webview

我正在尝试编写一个应用程序,通过mjpeg在Android平板电脑上传输相机。我有mjpeg流媒体工作,如果我用火狐从电脑连接我的手机,我可以看到相机的流。

但是,如果我尝试从同一个应用程序使用webview,我似乎无法从http://localhost:8080/http://127.0.0.1:8080/加载图像,即使服务器位于设备本身上,并且正在列出在8080港口。

在我的主要活动中,我有这样的代码:

public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);

    requestWindowFeature(Window.FEATURE_NO_TITLE);
    getWindow().addFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN);
    setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_LANDSCAPE);

    setContentView(R.layout.activity_main);

    mSurfaceHolderHandlerFront=new SurfaceHolderHandler(1,false,8080,PREF_PREVIEW_SIZE_INDEX_DEF,PREF_JPEG_QUALITY_DEF);
    mSurfaceHolderHandlerFront.setPreviewDisplay(((SurfaceView) findViewById(R.id.mainsurfaceviewfront)).getHolder());

    final PowerManager powerManager = (PowerManager) getSystemService(POWER_SERVICE);
    mWakeLock = powerManager.newWakeLock(PowerManager.SCREEN_DIM_WAKE_LOCK, TAG);

    mSurfaceHolderHandlerFront.tryStartCameraStreamer();

    mWebView = (WebView) findViewById(R.id.activity_main_webview);
    // Enable Javascript
    WebSettings webSettings = mWebView.getSettings();
    webSettings.setJavaScriptEnabled(true);
    mWebView.loadUrl("file:///android_asset/www/camera.html");
}

我的camera.html文件如下所示:

    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
    <head>
        <link href="css/main.css" type="text/css" rel="stylesheet" />
        <title>Camera Tools</title>

    </head>
    <body>
        <table border="0" cellpadding="0" cellspacing="0">
        <tr>
            <td style="vertical-align: top"><img alt="Camera View" border="0" src="http://127.0.0.1:8080/" style="height: 527px" /></td>
            <td>&nbsp;</td>
            <td style="vertical-align: top; padding-top:5px" >
            <table border="1" cellpadding="0" cellspacing="0">

                <tr>
                    <td>Single View</td>
                </tr>
                <tr>
                    <td>Multi-View</td>
                </tr>
            </table>
            </td>
        </tr>
        </table>



    </body>
</html>

现在我正走在疯狂的道路上,因为除了砸碎我的设备之外,我确实尝试了一切,而且它不会从本地来源加载。它做了一次,我无法重复它。我不知道这是我改变的代码还是别的什么,但我不知道如何调试这个。如果我从我的电脑通过wifi访问内部服务器mjpeg webserver工作正常,如果我访问远程mjpeg凸轮我的页面工作正常。但是,只要我尝试从运行服务器的手机本身加载它,那么什么都没有。在调试时,我无法从本地webview获得套接字连接上的断点,所以它几乎就像它甚至没有尝试从localhost加载。我是否需要注册一些权限或其他内容才能使用?

注意:我正在华硕FE170CG Fonepad平板电脑上测试此代码。它运行的是Android Kitkat 4.4.2。

有人可以提出任何可能有用的建议吗?

谢谢,

斯蒂德。

0 个答案:

没有答案