码迷,mamicode.com
首页 > 移动开发 > 详细

Android之WebView的使用与简单浏览器

时间:2015-08-03 14:33:25      阅读:107      评论:0      收藏:0      [点我收藏+]

标签:android   浏览器   webview   控件   uri   

在要浏览网页的时候,第一种我们可以通过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~


版权声明:本文为博主原创文章,未经博主允许不得转载。

Android之WebView的使用与简单浏览器

标签:android   浏览器   webview   控件   uri   

原文地址:http://blog.csdn.net/huai814586181/article/details/47254747

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!