Android客户端打开网页操作 webclient

本文介绍了一个自定义的Android WebView客户端实现方法,通过不同场景加载网络页面、本地HTML文件及混合内容,展示了如何处理URL加载、本地文件加载以及混合内容显示等关键步骤。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

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>
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值