项目中使用到WebView,因为数据给的时候JSON中的一个字段,文本形式的一段HTML,其中可能饱含了img标签,还有电话等数据(点击号码能到拨打界面).
找到如下解决办法:
给邮件加入超链接:
<a href="mailto:gouridetengxun@qq.com">gouridetengxun@qq.com</a>
给电话号码加入超链接:
<a href="tel:747474174" style="color:blue">747474174</a>
给网址加入超链接:
<a href="http://www.a.b.c">http://www.a.b.c</a>
下面是一个在搜集到的一个使用Webview使用实例,提到了几个设置属性,特别是设置缩放。
public class AndroidWebViewActivity extends Activity {
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
WebView content_wv = (WebView) findViewById(R.id.content_wv);
WebSettings ws = content_wv.getSettings();
ws.setJavaScriptEnabled(true); // 设置支持javascript脚本
ws.setAllowFileAccess(true); // 允许访问文件
ws.setBuiltInZoomControls(true); // 设置显示缩放按钮
ws.setSupportZoom(true); //支持缩放/**
* 用WebView显示图片,可使用这个参数
* 设置网页布局类型:
* 1、LayoutAlgorithm.NARROW_COLUMNS : 适应内容大小
* 2、LayoutAlgorithm.SINGLE_COLUMN:适应屏幕,内容将自动缩放
*/
ws.setLayoutAlgorithm(LayoutAlgorithm.NARROW_COLUMNS);
ws.setDefaultTextEncodingName("utf-8"); //设置文本编码
ws.setAppCacheEnabled(true);
ws.setCacheMode(WebSettings.LOAD_DEFAULT);//设置缓存模式//添加Javascript调用java对象
content_wv.addJavascriptInterface(this, "java2js");
content_wv.setWebViewClient(new WebViewClientDemo());
content_wv.setWebChromeClient(new WebViewChromeClientDemo());
//设置打开的网页
content_wv.loadUrl("http://orgcent.com");
//使用WebView来显示图片
content_wv.loadData("<img src='http://orgcent.com'/>", "text/html", "utf8");
}
private class WebViewClientDemo extends WebViewClient {
@Override
public boolean shouldOverrideUrlLoading(WebView view, String url) {
view.loadUrl(url);// 当打开新链接时,使用当前的 WebView,不会使用系统其他浏览器
return true;
}
}
private class WebViewChromeClientDemo extends WebChromeClient {
// 设置网页加载的进度条
public void onProgressChanged(WebView view, int newProgress) {
}
// 获取网页的标题
public void onReceivedTitle(WebView view, String title) {
}
// JavaScript弹出框
@Override
public boolean onJsAlert(WebView view, String url, String message,
JsResult result) {
return super.onJsAlert(view, url, message, result);
}
// JavaScript输入框
@Override
public boolean onJsPrompt(WebView view, String url, String message,
String defaultValue, JsPromptResult result) {
return super.onJsPrompt(view, url, message, defaultValue, result);
}
// JavaScript确认框
@Override
public boolean onJsConfirm(WebView view, String url, String message,
JsResult result) {
return super.onJsConfirm(view, url, message, result);
}
}
}