Android网络技术之WebView控件

来源:互联网 发布:中文logo设计软件 编辑:程序博客网 时间:2024/05/18 01:54

android.webkit库聚合了webkit内核的浏览器功能,webview就是她的一个控件,可以使得网页轻松的内嵌到app里。并且比较强大的是,还可以直接跟js相互调用。

activity_main.xml代码:

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"    android:layout_width="fill_parent"    android:layout_height="fill_parent"    android:orientation="vertical" >    <WebView        android:id="@+id/webView1"        android:layout_width="match_parent"        android:layout_height="match_parent" /></LinearLayout>

MainActivity程序代码:

public class MainActivity extends Activity {private WebView webView;    @Override    protected void onCreate(Bundle savedInstanceState) {        super.onCreate(savedInstanceState);        setContentView(R.layout.activity_main);        webView=(WebView) findViewById(R.id.webView1);        // 核心语句        webView.getSettings().setJavaScriptEnabled(true);        webView.setWebViewClient(new WebViewClient(){        @Override        public boolean shouldOverrideUrlLoading(WebView view, String url) {        // TODO Auto-generated method stub        view.loadUrl(url);        return super.shouldOverrideUrlLoading(view, url);        }        });        webView.loadUrl("http://www.baidu.com");    }        //核心语句 }

在AndroidManifest中申请网络权限

<?xml version="1.0" encoding="utf-8"?><manifest xmlns:android="http://schemas.android.com/apk/res/android"    package="com.liming.s001.internettest"    android:versionCode="1"    android:versionName="1.0" >    <uses-sdk        android:minSdkVersion="15"        android:targetSdkVersion="20" />    <!-- 关键语句 -->    <uses-permission android:name="android.permission.INTERNET"/>    <!-- 关键语句 -->    <application        android:allowBackup="true"        android:icon="@drawable/ic_launcher"        android:label="@string/app_name"        android:theme="@style/AppTheme" >        <activity            android:name=".MainActivity"            android:label="@string/app_name" >            <intent-filter>                <action android:name="android.intent.action.MAIN" />                <category android:name="android.intent.category.LAUNCHER" />            </intent-filter>        </activity>    </application></manifest>
过程简述:

1、首先使用findViewById()方法获取到WebView的实例

2、然后调用WebView的getSetting()方法设置浏览器属性(这里调用setJavaScriptEnabled()使得WebView支持JavaScript脚本)

3、调用WebView的setWebViewClient()方法,传入WebViewClient的匿名类作为参数并重shouldOverrideUrlLoading方法。

4、调用WebView的loadUrl()方法,将网址传入即可展示网页内容。


注:

setWebViewClient主要处理解析,渲染网页等浏览器做的事情

setWebChromeClient是辅助WebView处理Javascript的对话框,网站图标,网站title,加载进度等 

 shouldOverrideUrlLoading该方法控制在何处处理目标网页,返回true表示使用当前应用处理目标网页,而不是使用外部浏览器
实现效果:




0 0