2009-12-30 42 views
5

Tôi đã đập đầu vào một bức tường chiều nay cố gắng để có được một WebView để làm việc. Dưới đây là mã trong lớp chính:Tại sao Android WebView hiển thị màn hình đen?

public class fkyougoogle extends Activity { 
    /** Called when the activity is first created. */ 
WebView webview; 

    @Override 
    public void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 
     setContentView(R.layout.main); 

     webview = (WebView) findViewById(R.id.webview); 
     webview.getSettings().setJavaScriptEnabled(true); 
     // WORKS 
     //webview.loadUrl("http://www.google.com"); 
     // DOESN'T WORK 
     //webview.loadUrl("http://www.theregister.co.uk"); 
     //webview.loadData("<html><body>hello</body></html>", "text/html", "utf-8"); 
     //webview.loadDataWithBaseURL("fake://", "<html><body>hello</body></html>", "text/html", "utf-8", "http://www.theregister.co.uk/"); 

    } 
} 

Đây là ví dụ "Hello, Webview" của Google. Nếu tôi sử dụng một WebView và cố gắng truy cập vào www.google.com thì nó hoạt động tốt. Nếu tôi cố gắng truy cập vào bất kỳ trang web nào khác thì nó không thành công bao gồm loadData và nó chỉ hiển thị một màn hình màu đen trong trình mô phỏng. Cuối cùng tôi muốn đọc từ một tập tin địa phương.

được bao gồm trong thẻ kê khai và lược đồ XML giống như ví dụ Hello Webview.

Tôi có thiếu điều gì đó hiển nhiên ở đây không? :(

+0

Đây là phiên bản SDK và API Google mới nhất :) – Biz

+0

Bạn đã thử nhận xét cuộc gọi tới setJavaScriptEnabled chưa? – CaseyB

+0

'adb logcat' nói gì khi màn hình đen xuất hiện? –

Trả lời

0

Hãy thử UTF-8 thay vì utf-8 cho hai lần thử sau của bạn. Tôi không gặp vấn đề gì khi tải http://www.theregister.co.uk bằng cùng một mã - thử tải ứng dụng đó trong ứng dụng Trình duyệt tích hợp và nếu không thành công, có thể bạn đang gặp phải một số loại tường lửa/vấn đề proxy.

Here are a few projects chứng minh mục đích sử dụng đơn giản của WebView, từ một trong những cuốn sách của tôi.

7

Hãy thử thay đổi

android:layout_width="wrap_content" 
android:layout_height="wrap_content" 

để

android:layout_width="fill_parent" 
android:layout_height="fill_parent" 

trong main.xml cấp cao nhất LinearLayout bạn

Nó sẽ giống như thế này:

<?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/webview" 
     android:layout_width="fill_parent" 
     android:layout_height="fill_parent" 
    /> 

</LinearLayout> 
+0

Tôi đã có cùng một vấn đề như poster, điều này cố định nó cho tôi. Cảm ơn Tyler! –

+1

Bạn muốn nói rằng các tham số bố cục có bất kỳ ảnh hưởng nào đến những url mà webview có thể tải hay không? –

+0

Theo: [ViewGroup.LayoutParams FILL_PARENT] (http://developer.android.com/reference/android/view/ViewGroup.LayoutParams.html#FILL_PARENT) Giá trị này không được chấp nhận bắt đầu từ API cấp 8 và được thay thế bởi MATCH_PARENT –

0

Tôi có vấn đề tương tự của một WebView là hoàn toàn trống, nhưng nó trường hợp của tôi nó đã gây ra bởi một thiếu android.permission.INTERNET sử dụng-sự cho phép.

Các vấn đề liên quan