Android WebView未显示本地IP地址

时间:2016-03-23 00:10:56

标签: java android webview raspberry-pi

我有一个运行WebIOPi的Raspberry Pi,它连接到一个中继板,通过基于Web的界面打开和关闭。这是界面在浏览器中的样子:

enter image description here

一切正常,但我想创建一个Android应用程序,只需通过WebView显示基于Web的界面。我之前使用过WebView,看起来非常简单,但我无法使用它。

这是我的代码:

MainActivity:

package org.kevinbright.android.backyardcontrolapp;

import android.app.Activity;
import android.os.Bundle;
import android.webkit.WebView;
import android.webkit.WebViewClient;


public class MainActivity extends Activity {

    private WebView mWebViewer;




@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);


    //url = getIntent().getStringExtra(EXTRA_URL);

    mWebViewer = (WebView)findViewById(R.id.webviewer);
    mWebViewer.setWebViewClient(new WebViewClient());
    mWebViewer.clearCache(true);
    mWebViewer.getSettings().setJavaScriptEnabled(true);
    mWebViewer.loadUrl("http://192.168.1.100:8000/");
}
}

这是XML:

<?xml version="1.0" encoding="UTF-8"?>

<LinearLayout android:orientation="vertical"
              android:layout_height="match_parent"
              android:layout_width="match_parent"
              xmlns:android="http://schemas.android.com/apk/res/android">

<WebView android:layout_height="match_parent"
         android:layout_width="match_parent"
         android:id="@+id/webviewer"/>

我补充道:

<uses-permission android:name="android.permission.INTERNET" />
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />

到清单。

我没有收到任何logcat错误,但是当我运行应用程序时,我只得到一个白屏。此外,如果我替换“http://www.google.com”,一切正常。此外,我正在测试一个实时设备(没有模拟器)。有关为什么这不起作用的任何建议?

3 个答案:

答案 0 :(得分:0)

我有像你这样的问题。我已经实现了加载本地IP,但它需要至少30秒,同时白屏就像你一样。它像铬(webView)一样试图在互联网上找到IP,最后说:“哦,这是一个本地IP,让我们加载”。这很奇怪。我一直在等待帮助。

答案 1 :(得分:0)

如果您使用的是 http 协议,请尝试将其添加到您的 android manifest

android:usesCleartextTraffic="true"

它对我有用

答案 2 :(得分:0)

public void onCreate(Bundle savedInstanceState) {
   
        super.onCreate(savedInstanceState);
        setContentView(R.layout.webview);
        mWebView = (WebView)findViewById(R.id.webview);
        mWebView.clearCache(true);
        mWebView.getSettings().setJavaScriptEnabled(true);
        mWebView.loadUrl("http://10.0.2.2:8080/SampleWebServer/Welcome.html");
        //pass complete url 
       
}