android webclient使用
public class MyWebViewClient extends Activity
{
private WebView webView;
private final String mimeType = "text/html";
private final String encoding = "utf-8";
@Override
protected void onCreate(Bundle bundle)
{
super.onCreate(bundle);
setContentView(R.layout.viewclient);
webView = (WebView) findViewById(R.id.webview);
webView.getSettings().setJavaScriptEnabled(true);
/*
* 取值
*/
Bundle myBundle = getIntent().getExtras();
String url = myBundle.getString("url");
if (CommonUtil.isNotEmpty(url))
{
if (url.startsWith("http"))
{
openWebRequest(url);
}
else if (url.startsWith("file"))
{
openLocalFile(url);
}
else
{
localHtmlAndImage(url);
}
}
}
/**
* 打開網頁 / 直接網絡圖片顯示
*
* @param String url(URL路徑)
* @return void
* @throws
* @since TianTian
*/
private void openWebRequest(String url)
{
try
{
webView.loadUrl(url);
}
catch (Exception ex)
{
ex.printStackTrace();
}
}
/**
* 中文顯示(空格的處理)
*
* @param String data(數據)
* @return void
* @throws
* @since TianTian
*/
@SuppressWarnings("unused")
private void localHtmlBlankSpace(String data)
{
try
{
if (CommonUtil.isNotEmpty(data))
{
webView.loadData(URLEncoder.encode(data, encoding),mimeType,encoding);
webView.loadData(URLEncoder.encode(data, encoding).replaceAll("\\+", " "),mimeType,encoding);
}
}
catch (Exception ex)
{
ex.printStackTrace();
}
}
/**
* 顯示本地網頁文件 / 顯示本地圖片文件
*
* @param String data(數據)
* @return void
* @throws
* @since TianTian
*/
private void openLocalFile(String url)
{
try
{
// 本地文件處理(如果文件名中有空格需要用+來替代)
webView.loadUrl(url);
}
catch (Exception ex)
{
ex.printStackTrace();
}
}
/**
* 顯示本地圖片和文字混合的Html內容
*
* @param String data(數據)
* @return void
* @throws
* @since TianTian
*/
private void localHtmlAndImage(String data)
{
try
{
if (CommonUtil.isNotEmpty(data))
{ webView.loadDataWithBaseURL("about:blank",data,mimeType,encoding,"");
}
}
catch (Exception ex)
{
ex.printStackTrace();
}
}
}
xml:
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout android:layout_height="fill_parent"
android:layout_width="fill_parent" android:orientation="vertical"
xmlns:android="http://schemas.android.com/apk/res/android">
<WebView android:layout_height="fill_parent"
android:layout_width="fill_parent" android:id="@+id/webview" />
</LinearLayout>
{
private WebView webView;
private final String mimeType = "text/html";
private final String encoding = "utf-8";
@Override
protected void onCreate(Bundle bundle)
{
super.onCreate(bundle);
setContentView(R.layout.viewclient);
webView = (WebView) findViewById(R.id.webview);
webView.getSettings().setJavaScriptEnabled(true);
/*
* 取值
*/
Bundle myBundle = getIntent().getExtras();
String url = myBundle.getString("url");
if (CommonUtil.isNotEmpty(url))
{
if (url.startsWith("http"))
{
openWebRequest(url);
}
else if (url.startsWith("file"))
{
openLocalFile(url);
}
else
{
localHtmlAndImage(url);
}
}
}
/**
* 打開網頁 / 直接網絡圖片顯示
*
* @param String url(URL路徑)
* @return void
* @throws
* @since TianTian
*/
private void openWebRequest(String url)
{
try
{
webView.loadUrl(url);
}
catch (Exception ex)
{
ex.printStackTrace();
}
}
/**
* 中文顯示(空格的處理)
*
* @param String data(數據)
* @return void
* @throws
* @since TianTian
*/
@SuppressWarnings("unused")
private void localHtmlBlankSpace(String data)
{
try
{
if (CommonUtil.isNotEmpty(data))
{
webView.loadData(URLEncoder.encode(data, encoding),mimeType,encoding);
webView.loadData(URLEncoder.encode(data, encoding).replaceAll("\\+", " "),mimeType,encoding);
}
}
catch (Exception ex)
{
ex.printStackTrace();
}
}
/**
* 顯示本地網頁文件 / 顯示本地圖片文件
*
* @param String data(數據)
* @return void
* @throws
* @since TianTian
*/
private void openLocalFile(String url)
{
try
{
// 本地文件處理(如果文件名中有空格需要用+來替代)
webView.loadUrl(url);
}
catch (Exception ex)
{
ex.printStackTrace();
}
}
/**
* 顯示本地圖片和文字混合的Html內容
*
* @param String data(數據)
* @return void
* @throws
* @since TianTian
*/
private void localHtmlAndImage(String data)
{
try
{
if (CommonUtil.isNotEmpty(data))
{ webView.loadDataWithBaseURL("about:blank",data,mimeType,encoding,"");
}
}
catch (Exception ex)
{
ex.printStackTrace();
}
}
}
xml:
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout android:layout_height="fill_parent"
android:layout_width="fill_parent" android:orientation="vertical"
xmlns:android="http://schemas.android.com/apk/res/android">
<WebView android:layout_height="fill_parent"
android:layout_width="fill_parent" android:id="@+id/webview" />
</LinearLayout>
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.