我有一个运行WebIOPi的Raspberry Pi,它连接到一个中继板,通过基于Web的界面打开和关闭。这是界面在浏览器中的样子:
一切正常,但我想创建一个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”,一切正常。此外,我正在测试一个实时设备(没有模拟器)。有关为什么这不起作用的任何建议?
答案 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
}