Android實現webview

webview是一個很簡單的功能,代碼沒有什麼邏輯上的難度,只是需要注意權限上的問題。其實在安卓編程的過程當中,權限問題可以算是出現的比較多的BUG。

1.MainAct

package com.lxq.webview01;

import android.app.Activity;
import android.os.Bundle;
import android.view.KeyEvent;
import android.view.View;
import android.view.View.OnClickListener;
import android.webkit.WebSettings;
import android.webkit.WebView;
import android.webkit.WebViewClient;
import android.widget.Button;
import android.widget.EditText;

public class MainActivity extends Activity {

    private EditText et_url;
    private Button btn_request;
    private WebView wv;

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

        initView();
        initSetting();
        initEvent();

    }

    private void initSetting() {
        //webview設置屬性
        WebSettings ws=wv.getSettings();
        ws.setBuiltInZoomControls(true);
        ws.setDefaultZoom(WebSettings.ZoomDensity.FAR);
        ws.setJavaScriptEnabled(true);
        ws.setSupportZoom(true);
        //點擊鏈接繼續在當前browser中響應,而不是新開Android的系統browser中響應該鏈接,必須覆蓋 webview的WebViewClient對象
        wv.setWebViewClient(new WebViewClient(){       
            public boolean shouldOverrideUrlLoading(WebView view, String url) {       
                view.loadUrl(url);       
                return true;       
            }       
        });   

    }

    //初始化控件
    private void initView() {
        et_url =(EditText)findViewById(R.id.et_url);        
        btn_request = (Button)findViewById(R.id.btn_request);       
        wv= (WebView)findViewById(R.id.wv);     
    }
    //按鍵監聽
    public boolean onKeyDown(int keyCode, KeyEvent event) {       
        if ((keyCode == KeyEvent.KEYCODE_BACK) && wv.canGoBack()) {       
            wv.goBack();       
            return true;       
        }       
        return super.onKeyDown(keyCode, event);       
    } 
    //初始化事件
    private void initEvent() {

        btn_request.setOnClickListener(new OnClickListener() {

            @Override
            public void onClick(View v) {
                String url=et_url.getText().toString().trim();
                wv.loadUrl(url);
            }
        });
    }

}

2.最重要的是在manifest中添加權限,否則是無法顯示的。

<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
    package="com.lxq.webview01"
    android:versionCode="1"
    android:versionName="1.0" >

    <uses-sdk
        android:minSdkVersion="8"
        android:targetSdkVersion="17" />
    <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="com.lxq.webview01.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>
    </
app````
ication>

</manifest>
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章