在要浏览网页的时候,第一种我们可以通过Intent来使用自带的浏览器,第二种可以通过WebView这个控件来浏览。
第一种很简单,直接看代码:
Uri uri = Uri.parse("http://www.baidu.com/"); Intent launchBrowser = new Intent(Intent.ACTION_VIEW, uri); startActivity(launchBrowser);
第二种就稍微复杂点
首先我们要对WebView这个控件有一个XML布局:
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="http://schemas.android.com/tools" android:layout_width="match_parent" android:layout_height="match_parent" tools:context=".MainActivity"> <WebView android:id="@+id/webView" android:layout_width="match_parent" android:layout_height="match_parent"/> </RelativeLayout>
在OnCreate方法中加载这个控件,并设置一些参数:
webView = (WebView) findViewById(R.id.webView); //加载WebView webView.getSettings().setJavaScriptEnabled(true); //设置设否支持JavaScript webView.loadUrl("http://www.baidu.com/"); //加载地址 webView.setWebViewClient(new WebViewClient() { @Override public boolean shouldOverrideUrlLoading(WebView view, String url) { view.loadUrl(url); return true; } }); //设置浏览
如果要使用WebView来访问网络,则还需要一个权限:
<uses-permission android:name="android.permission.INTERNET"/>
这样,一个简单的访问web的小程序就做好了。
当然,简单的这样并不能满足,我们还需要加一点功能。。。
首先我们要对回退键进行一下处理:
@Override public boolean onKeyDown(int keyCode, KeyEvent event) { if((keyCode == KeyEvent.KEYCODE_BACK)) { if(webView.canGoBack()) webView.goBack(); else finish(); return true; } return false; }
这样做的目的,是为了每次按回退键之后都返回到前一个页面,如果不这么做,就相当于回退一个activity,这个本身就一个activity,按回退之后就相当于把这个activity给销毁掉了,因此,要加上以上这些代码。
我们知道,浏览器的上方都有一个输入地址的地方,我们也给加上去,先修改一下XML布局:
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="http://schemas.android.com/tools" android:layout_width="match_parent" android:layout_height="match_parent" tools:context=".MainActivity"> <EditText android:id="@+id/et_address" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_above="@+id/webView" android:layout_toLeftOf="@+id/btn_go" android:layout_alignParentLeft="true" android:layout_alignParentStart="true" /> <Button android:id="@+id/btn_go" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="GO" android:layout_alignParentTop="true" android:layout_alignParentRight="true"/> <WebView android:id="@+id/webView" android:layout_width="match_parent" android:layout_height="wrap_content" android:layout_alignParentBottom="true" android:layout_below="@+id/btn_go" /> </RelativeLayout>
多了个EditText和Button控件,对这两个控件作如下处理:
et_address = (EditText) findViewById(R.id.et_address); et_address.setText("http://www.baidu.com/"); btn_go = (Button) findViewById(R.id.btn_go); btn_go.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { String address = et_address.getText().toString(); if(!address.startsWith("http://")) { address = "http://" + address; } // 如果不以http://开头,识别不了,所以判断 webView.loadUrl(address); et_address.setText(address); } });
好了,到此为止,一个普通的浏览器就完成了,当然WebView这个控件还有很多可以设置的属性,我就不一一介绍了。
The End~
版权声明:本文为博主原创文章,未经博主允许不得转载。
时间: 2024-10-27 18:54:59