我在Android 7.0(moto g4)中面临一个问题,我试图在网页视图中加载一个网址,但它显示一个空白的白色屏幕。它正在使用Android M及以下版本。
public class MainActivity extends Activity {
private String webviewURL="http://henmilholidayhomesgoa.com/player2/documentation/EULA.html";
private WebView wv;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
wv= (WebView) findViewById(R.id.webview);
wv.getSettings().setTextZoom(60);
wv.getSettings().setBuiltInZoomControls(true);
wv.getSettings().setJavaScriptEnabled(true);
wv.loadUrl(webviewURL);
}
}
注意: - 代码中提到的网址不是我不能分享的实际网址:(。它是一个带https的网址。但是帖子中的给定网址实际上正在工作,请让我知道,如果有的话需要其他输入。谢谢提前
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="fill_parent"
android:layout_height="fill_parent" >
<WebView
android:id="@+id/webview"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:gravity="center" />
</RelativeLayout>
答案 0 :(得分:1)
试试这个示例代码:
在这里有一个webview和一个进度条。在这个代码中,一旦进度条消失就会加载url,如果url中有任何链接,它也会在webview中打开它。
以下是 java 代码:
import android.app.Activity;
import android.app.ProgressDialog;
import android.os.Bundle;
import android.webkit.WebView;
import android.webkit.WebViewClient;
public class ShowWebView extends Activity {
//private Button button;
private WebView webView;
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.show_web_view);
//Get webview
webView = (WebView) findViewById(R.id.webView1);
startWebView("http://www.androidexample.com/media/webview/login.html");
}
private void startWebView(String url) {
//Create new webview Client to show progress dialog
//When opening a url or click on link
webView.setWebViewClient(new WebViewClient() {
ProgressDialog progressDialog;
//If you will not use this method url links are opeen in new brower not in webview
public boolean shouldOverrideUrlLoading(WebView view, String url) {
view.loadUrl(url);
return true;
}
//Show loader on url load
public void onLoadResource (WebView view, String url) {
if (progressDialog == null) {
// in standard case YourActivity.this
progressDialog = new ProgressDialog(ShowWebView.this);
progressDialog.setMessage("Loading...");
progressDialog.show();
}
}
public void onPageFinished(WebView view, String url) {
try{
if (progressDialog.isShowing()) {
progressDialog.dismiss();
progressDialog = null;
}
}catch(Exception exception){
exception.printStackTrace();
}
}
});
// Javascript inabled on webview
webView.getSettings().setJavaScriptEnabled(true);
// Other webview options
/*
webView.getSettings().setLoadWithOverviewMode(true);
webView.getSettings().setUseWideViewPort(true);
webView.setScrollBarStyle(WebView.SCROLLBARS_OUTSIDE_OVERLAY);
webView.setScrollbarFadingEnabled(false);
webView.getSettings().setBuiltInZoomControls(true);
*/
/*
String summary = "<html><body>You scored <b>192</b> points.</body></html>";
webview.loadData(summary, "text/html", null);
*/
//Load url in webview
webView.loadUrl(url);
}
// Open previous opened link from history on webview when back button pressed
@Override
// Detect when the back button is pressed
public void onBackPressed() {
if(webView.canGoBack()) {
webView.goBack();
} else {
// Let the system handle the back button
super.onBackPressed();
}
}
}
现在,下面是相应的 xml 代码:
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:orientation="vertical" >
<WebView
android:id="@+id/webView1"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
/>
</LinearLayout>
请在android 7.0中检查此代码。希望它可以帮助你!
答案 1 :(得分:1)
我复制了相同的代码并在nougat Nexus 9上运行应用程序。 加载URL需要一段时间等待5分钟,否则请与其他Nougat设备进行核对。
SELECT sup.qid,
sup.title,
SUBSTRING(sup.userid, 1, 1) AS t,
CASE SUBSTRING(sup.userid, 1, 1)
WHEN 's' THEN staff.name
WHEN 'p' THEN users.name
ELSE NULL
END AS user_name
FROM support_queries sub
LEFT OUTER JOIN users
ON SUBSTRING(sup.userid, 2, LENGTH(sup.userid) - 1) = users.id
LEFT OUTER JOIN staff
ON SUBSTRING(sup.userid, 2, LENGTH(sup.userid) - 1) = staff.id
希望这有帮助。快乐编码。如果有帮助,请告诉我。
答案 2 :(得分:0)
我在华硕Nexus 7上遇到过类似问题.Webview浏览器版本为56,而Chrome浏览器应用程序版本较低。我更新了Google Chrome应用后,webview开始正常运行。
答案 3 :(得分:0)
您可以使用loadDataWithBaseURL而不是loadData,然后尝试在某些设备上遇到类似的问题。