关于WebView加载URL时显示一片空白的问题

问题:

当用WebView加载URL时,WebView只是显示一片空白,而没有正常加载所需要的内容;

1》布局文件:

[html] view plain copy
  1. <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"  
  2.     xmlns:tools="http://schemas.android.com/tools"  
  3.     android:layout_width="match_parent"  
  4.     android:layout_height="match_parent"  
  5.     android:paddingBottom="@dimen/activity_vertical_margin"  
  6.     android:paddingLeft="@dimen/activity_horizontal_margin"  
  7.     android:paddingRight="@dimen/activity_horizontal_margin"  
  8.     android:paddingTop="@dimen/activity_vertical_margin"  
  9.     tools:context=".MainActivity">  
  10.   
  11.     <WebView  
  12.         android:id="@+id/test_wv"  
  13.         android:layout_width="match_parent"  
  14.         android:layout_height="match_parent">  
  15.   
  16.     </WebView>  
  17.   
  18. </RelativeLayout>  

很简单,只有一个WebView控件

2》Activity:

[html] view plain copy
  1. package com.demo.cxc.webviewdemo;  
  2.   
  3. import android.os.Bundle;  
  4. import android.support.v7.app.AppCompatActivity;  
  5. import android.webkit.WebView;  
  6.   
  7. public class MainActivity extends AppCompatActivity {  
  8.     private WebView test_wv;  
  9.   
  10.   
  11.     @Override  
  12.     protected void onCreate(Bundle savedInstanceState) {  
  13.         super.onCreate(savedInstanceState);  
  14.         setContentView(R.layout.activity_main);  
  15.   
  16.         test_wv = (WebView) findViewById(R.id.test_wv);  
  17.   
  18.         test_wv.loadUrl("http://tshop.xymens.com/Assets/cat_size/?table_id=5&goods_id=277063&user_id=");  
  19.   
  20.     }  
  21.   
  22.   
  23. }  

注意:这里要在manifest文件中加入相关权限:

[html] view plain copy
  1. <uses-permission android:name="android.permission.INTERNET" />  


其中要加载的URL在浏览器中加载后显示的内容如下:




3》运行

效果如下:



可以看出在WebView中并未显示要加载的URL的内容


5》改正

给WebView添加下列属性

[html] view plain copy
  1. test_wv.setWebChromeClient(new WebChromeClient());  
  2. test_wv.setWebViewClient(new WebViewClient());  
  3. test_wv.getSettings().setJavaScriptEnabled(true);  

即,Activity改为如下:

[html] view plain copy
  1. package com.demo.cxc.webviewdemo;  
  2.   
  3. import android.support.v7.app.AppCompatActivity;  
  4. import android.os.Bundle;  
  5. import android.view.Menu;  
  6. import android.view.MenuItem;  
  7. import android.webkit.WebChromeClient;  
  8. import android.webkit.WebView;  
  9. import android.webkit.WebViewClient;  
  10.   
  11. public class MainActivity extends AppCompatActivity {  
  12.     private WebView test_wv;  
  13.   
  14.   
  15.     @Override  
  16.     protected void onCreate(Bundle savedInstanceState) {  
  17.         super.onCreate(savedInstanceState);  
  18.         setContentView(R.layout.activity_main);  
  19.   
  20.         test_wv = (WebView) findViewById(R.id.test_wv);  
  21.   
  22.         test_wv.setWebChromeClient(new WebChromeClient());  
  23.         test_wv.setWebViewClient(new WebViewClient());  
  24.         test_wv.getSettings().setJavaScriptEnabled(true);  
  25.   
  26.         test_wv.loadUrl("http://tshop.xymens.com/Assets/cat_size/?table_id=5&goods_id=277063&user_id=");  
  27.   
  28.     }  
  29.   
  30.   
  31. }  

6》运行效果如下:


可以正常显示 了:

参考:http://www.360doc.com/content/14/0616/16/16688557_387211958.shtml



转自:http://blog.csdn.net/cxc19890214/article/details/48213793







展开阅读全文

没有更多推荐了,返回首页