Android网络技术之WebView控件

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表示使用当前应用处理目标网页,而不是使用外部浏览器
实现效果:

Android网络技术之WebView控件_第1张图片



你可能感兴趣的:(JavaScript,网络,webkit,webView,控件)