2017-09-02 89 views
0

我是Android新手,開始使用基本應用程序(選擇API 5.1 /創建虛擬設備5.1.1/API22,因爲這是我將在以後使用的實際情況),只包含WebView :Android WebView保持空白

activity_main.xml中

<FrameLayout xmlns:android="http://schemas.android.com/apk/res/android" 
    xmlns:tools="http://schemas.android.com/tools" 
    android:id="@+id/container" 
    android:layout_width="match_parent" 
    android:layout_height="match_parent" 
    tools:context=".MainActivity" 
    tools:ignore="MergeRootFrame"> 

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

</FrameLayout> 

然而,無論我在活動的Java代碼做的頁面保持空白。我嘗試了很多從SO等tipps,但沒有任何工作,所以它一定是我很想念的東西?

MainActivity.java

package de.jstest.notes; 

import android.content.DialogInterface; 
import android.support.v7.app.AlertDialog; 
import android.support.v7.app.AppCompatActivity; 
import android.os.Bundle; 
import android.view.View; 
import android.webkit.WebSettings; 
import android.webkit.WebView; 

public class MainActivity extends AppCompatActivity { 

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

     final WebView myWebView = (WebView) findViewById(R.id.activity_main_webview); 
     WebSettings webSettings = myWebView.getSettings(); 
     webSettings.setDomStorageEnabled(true); // is this actually needed? 
     webSettings.setJavaScriptEnabled(true); 
     String summary = "<html><head><title>WebView JS Tester</title></head><body>" + 
       "Code<br>" + 
       "<textarea id='code'></textarea><br>" + 
       "Result<br>" + 
       "<textarea id='result'></textarea><br>" + 
       "<input type='button' value='Eval' onclick='" + 
       "document.getElementById(\"result\").value=eval(document.getElementById(\"code\").value)" + 
       "'>" + 
       "</body></html>"; 
     myWebView.loadData(summary, "text/html; charset=utf-8", "utf-8"); 

     AlertDialog.Builder builder = new AlertDialog.Builder(this); 
     builder.setMessage("WebView 'title' = " + myWebView.getTitle()); 
     builder.setPositiveButton("Now try a web page...", 
       new DialogInterface.OnClickListener() { 
        @Override 
        public void onClick(DialogInterface dialog, int which) { 
        } 
       }); 
     final AlertDialog dialog = builder.create(); 
     dialog.show(); 
     dialog.getButton(AlertDialog.BUTTON_POSITIVE).setOnClickListener(
      new View.OnClickListener() { 
       @Override 
       public void onClick(View view) { 
        myWebView.loadUrl("https://www.google.de/"); 
        dialog.dismiss(); // otherwise, dialog stays open 
       } 
      } 
     ); 
    } 
} 

此外,對話框(按鈕)不工作(既不是我上面的代碼,也沒有更多的基本方法直接設置單擊處理),即,應用程序打開(有時,有時沒有其標題「註釋」...),並描述WebView保持空白;我看到對話框(說網頁視圖title爲空),但點擊一個按鈕(「現在嘗試網頁...」)完全沒有影響。點擊幾次後,我被問到是否要關閉沒有迴應的應用程序...

請注意,loadDataloadUrl都會導致空白頁。對於後者的工作,我想

AndroidManifest.xml中

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

但這並沒有改變任何東西。

+0

'loadData'部分似乎在這裏工作OK ...我的版本(對不起)777e28a https://github.com/rdp/sensible-cinema – rogerdpack

+0

謝謝!我今晚會嘗試並提供反饋。 – SomeDev

回答

0

我以前有類似的問題,似乎WebView沒有正確呈現在FrameLayout中。我用RelativeLayout替換它,並解決了問題。

希望它有幫助。

+0

謝謝 - 我交換了這個名字,但那沒有幫助:-(它是我之前嘗試過的一個tipps,我現在再試一次,但不幸的是,沒有效果。 – SomeDev