两种打开网页的简单方式
访问网页是APP最常用的功能,正如大家所知,加载和显示网页通常都是由浏览器来完成的,所以打开网页的最简单的方法就是调用手机系统浏览器。然而大部分时候用户的需求里明确指出,不允许打开系统浏览器。Android考虑到这种需求,提供了一个WebView控件,省去了重新编写一个浏览器的麻烦。先说明下这两种打开方式:
(一)调用浏览器显示
1.调用系统默认浏览器访问
//隐式调用Intent,指定Intent的action是Intent.ACTION_VIEW;
Intent intent =new Intent(Intent.ACTION_VIEW);
Uri uri = Uri.parse("http://www.baidu.com");
intent.setData(url);
startActivity(intent);
2.调用指定浏览器访问
调用指定的浏览器(前提得安装在设备上^-^),需要用intent.setClassName()来指定packgename和主启动activity:
Intent intent =new Intent(Intent.ACTION_VIEW);
intent.setData(Uri.parse("http://www.baidu.com"));
intent.setClassName("com.android.browser","com.android.browser.BrowserActivity");
startActivity(intent);
目前的浏览器不说多如牛毛,常见的也有不少了,每个人的偏好肯定都不一样,需要启用其他的浏览器的话,只需要修改以下相应的packagename和主启动activity就能够调用其他浏览器:
intent.setClassName("packagename","主启动activity");
这边列出一些常见浏览器的包名和主活动参数:
uc浏览器":"com.uc.browser", "com.uc.browser.ActivityUpdate“
opera浏览器:"com.opera.mini.android", "com.opera.mini.android.Browser"
qq浏览器:"com.tencent.mtt", "com.tencent.mtt.MainActivity"
(二)在Activity中直接访问(WebView显示)
1.在AndroidManifest.xml文件里添加网络访问权限
磨刀不误砍柴工,准备工作需要做好,我们使用WebView的最终目的是打开一个网页,而android中访问网络是需要声明权限的,所以我们需要修改一下AndroidManifest.xml文件,加入权限声明:
<user-permission android:name="android.permission.INTERNET" />
2.在布局文件里添加一个WebView控件
<WebView
android:id="@+id/web_view"
android:layout_height="match_parent"
android:layout_width="match_parent"/>
3.在Activity中实例化WebView对象并实现访问网页
WebView webView = (WebView) findViewById(R.id.web_view);
webView.getSettings().setJavaScriptEnabled(true);
webView.setWebViewClient(newWebViewClient());
webView.loadUrl("http://www.baidu.com");
首先使用findViewById()获取WebView的实例,在调用WebView的getSettings()方法设置浏览器的属性,上面的代码只是简单调用了setJavaScriptEnabled()方法让WebView支持JavaScript脚本。接着调用setWebViewClient()方法传入一个WebViewClient实例,这段代码保证了在网页跳转中仍然让内容出现在我们的WebView控件中,而不是打开系统的浏览器。最后调用loadUrl()并传入网址,就能将相应的网页展示出来了。
后记:关于WebView的属性的详细解析过段时间再贴出来,需要好好研究