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

步步为营_Android开发课[35]_用户界面之WebView(网络视图)

时间:2015-04-16 17:42:37      阅读:193      评论:0      收藏:0      [点我收藏+]

标签:webview   android   用户界面   开发   网络   

Focus on technology, enjoy life!—— QQ:804212028
浏览链接:http://blog.csdn.net/y18334702058/article/details/44624305


  • 主题:用户界面之WebView(网络视图)
    -相当于Android中内嵌的网络浏览器,可在APP中打开网页。
    实现效果:

技术分享

方法一步骤:

1.在要Activity中实例化WebView组件:WebView webView = new WebView(this);
2.调用WebView的loadUrl()方法,设置WevView要显示的网页:
互联网用:webView.loadUrl(“http://www.baidu.com“);
本地文件用:webView.loadUrl(“file:///android_asset/XX.html”); 本地文件存放在:assets 文件中
3.调用Activity的setContentView( )方法来显示网页视图
4.用WebView点链接看了很多页以后为了让WebView支持回退功能,需要覆盖覆盖Activity类的onKeyDown()方法,如果不做任何处理,点击系统回退剪键,整个浏览器会调用finish()而结束自身,而不是回退到上一页面
5.需要在AndroidManifest.xml文件中添加权限

实例代码如下:

activity_main.xml:

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent"
    android:orientation="vertical"
    android:id="@+id/mainlayout" >

    <WebView 
        android:id="@+id/webview"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
       />
</LinearLayout>

MainActivity.java:

import android.app.Activity;
import android.os.Bundle;
import android.view.KeyEvent;
import android.webkit.WebView;
import android.webkit.WebViewClient;

public class MainActivity extends Activity {

     WebView webview;
    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);

        webview = new WebView(this);  
        webview.getSettings().setJavaScriptEnabled(true);
        webview.loadUrl("https://www.baidu.com/");
      //设置Web视图  
        setContentView(webview);  
    }

        //覆盖Activity类的onKeyDown(int keyCoder,KeyEvent event)方法  
        public boolean onKeyDown(int keyCode, KeyEvent event) {  
            if ((keyCode == KeyEvent.KEYCODE_BACK) && webview.canGoBack()) {  
                webview.goBack(); //goBack()表示返回WebView的上一页面  
                return true;  
            }  
            return false;  
        }       
}

别忘了在AndroidManifest.xml里加入权限:

<uses-permission android:name="android.permission.INTERNET"/>

方法二步骤:

1、在布局文件中声明WebView
2、在Activity中实例化WebView
3、调用WebView的loadUrl( )方法,设置WevView要显示的网页
4、为了让WebView能够响应超链接功能,调用setWebViewClient( )方法,设置 WebView视图
5、用WebView点链接看了很多页以后为了让WebView支持回退功能,需要覆盖覆盖Activity类的onKeyDown()方法,如果不做任何处理,点击系统回退剪键,整个浏览器会调用finish()而结束自身,而不是回退到上一页面
6、需要在AndroidManifest.xml文件中添加权限

<uses-permission android:name="android.permission.INTERNET"/>

实例代码如下:

activity_main.xml:

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent"
    android:orientation="vertical"
    android:id="@+id/mainlayout" >

    <WebView 
        android:id="@+id/webview"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
       />
</LinearLayout>

MainActivity.java:

import android.app.Activity;
import android.os.Bundle;
import android.view.KeyEvent;
import android.webkit.WebView;
import android.webkit.WebViewClient;

public class MainActivity extends Activity {

     WebView webview;
    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);

        webview = (WebView) findViewById(R.id.webview);
        webview.getSettings().setJavaScriptEnabled(true);
        webview.loadUrl("https://www.baidu.com/");
        webview.setWebViewClient(new Client());
    }

        //覆盖Activity类的onKeyDown(int keyCoder,KeyEvent event)方法  
        public boolean onKeyDown(int keyCode, KeyEvent event) {  
            if ((keyCode == KeyEvent.KEYCODE_BACK) && webview.canGoBack()) {  
                webview.goBack(); //goBack()表示返回WebView的上一页面  
                return true;  
            }  
            return false;  
        }  

        private class Client extends WebViewClient {
             public boolean shouldOverrideUrlLoading(WebView view, String url) {  
                 view.loadUrl(url);  
                 return true;  
             }  
        }  
}

别忘了在AndroidManifest.xml里加入权限:

<uses-permission android:name="android.permission.INTERNET"/>

Focus on technology, enjoy life!—— QQ:804212028
浏览链接:http://blog.csdn.net/y18334702058/article/details/44624305

步步为营_Android开发课[35]_用户界面之WebView(网络视图)

标签:webview   android   用户界面   开发   网络   

原文地址:http://blog.csdn.net/y18334702058/article/details/45077239

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