在代码中写WebView加载图片链接后发现部分打开是需要浏览器器的,而不是在app内部打开!
初步研究发现WebView有两个方法:
setWebChromeClient 和 setWebClient
setWebClient:主要处理解析,渲染网页等浏览器做的事情
setWebChromeClient:辅助WebView处理Javascript的对话框,网站图标,网站title,加载进度等
WebViewClient就是帮助WebView处理各种通知、请求事件的。
在代码中加入一个方法即可解决该问题,下面为代码:
<pre name="code" class="java">public class ActivitDetilActivity extends Activity {
@Override
protected void onCreate(Bundle savedInstanceState) {
// TODO Auto-generated method stub
super.onCreate(savedInstanceState);
requestWindowFeature(Window.FEATURE_NO_TITLE);
setContentView(R.layout.activitydetilactivity);
TextView titleName = (TextView) findViewById(R.id.app_title_name2);
titleName.setText("活动推荐");
TextView titleBack = (TextView) findViewById(R.id.title_back2);
titleBack.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View arg0) {
// Intent intent = new Intent(activitdetilActivity.this,MoreActivities.class);
// startActivity(intent);
finish();
}
});
init();
}
private void init() {
WebView wv_detil = (WebView) findViewById(R.id.wv_detil);
wv_detil.getSettings().setJavaScriptEnabled(true);
wv_detil.getSettings().setDefaultTextEncodingName("UTF-8");
//适应屏幕
wv_detil.getSettings().setUseWideViewPort(true);
wv_detil.getSettings().setLoadWithOverviewMode(true);
//缩放
//缩放开关u
wv_detil.getSettings().setSupportZoom(true);
//设置此属性,仅支持双击缩放,不支持触摸缩放(在android4.0是这样,其他平台没试过)
// 设置是否可缩放
wv_detil.getSettings().setBuiltInZoomControls(true);
String url = getIntent().getStringExtra("url");
wv_detil.loadUrl(url);
wv_detil.setWebViewClient(new WebViewClient(){
@Override
public boolean shouldOverrideUrlLoading(WebView view, String url) {
//返回值是true的时候控制去WebView打开,为false调用系统浏览器或第三方浏览器
view.loadUrl(url);
return true;
}
});
}
}