当前位置:操作系统 > 安卓/Android >>

WebView的使用方法总结

本文主要讲解WebView的一些常用使用方法
 
代码如下:
 
xml文件:
 
[html]  
<LinearLayout 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"  
    android:orientation="vertical" >  
  
    <WebView  
        android:id="@+id/webView1"  
        android:layout_width="match_parent"  
        android:layout_height="0dip"  
        android:layout_weight="1" />  
  
     
  
        <ProgressBar  
            android:id="@+id/progressBar1"  
            android:layout_width="wrap_content"  
            android:layout_height="wrap_content"  
            android:layout_gravity="center_horizontal" />  
  
     
</LinearLayout>  
 
1.AndroidManifest.xml中必须使用许可"android.permission.INTERNET",否则会出Web page not available错误。
 
 2.如果访问的页面中有Javascript,则webview必须设置支持Javascript。
        webview.getSettings().setJavaScriptEnabled(true);  
3.如果页面中链接,如果希望点击链接继续在当前browser中响应,而不是新开Android的系统browser中响应该链接,必须覆盖 webview的WebViewClient对象。
 
[java]  
webView.setWebViewClient(new WebViewClient() {  
            public boolean shouldOverrideUrlLoading(WebView view, String url) {  
                view.loadUrl(url);  
                return true;  
            }  
        });  
 
4.如果不做任何处理,浏览网页,点击系统“Back”键,整个Browser会调用finish()而结束自身,如果希望浏览的网 页回退而不是推出浏览器,需要在当前Activity中处理并消费掉该Back事件。
 
[java]  
public boolean onKeyDown(int keyCode, KeyEvent event) {  
        if ((keyCode == KeyEvent.KEYCODE_BACK) && webView.canGoBack()) {  
            webView.goBack();  
            return true;  
        }  
        return super.onKeyDown(keyCode, event);  
    }  
 
 
 
5.android中webview支持javascript自定义对象
 
a.设置webview支持javascript.  webSettings.setJavaScriptEnabled(true);
 
b.绑定android对象到javascript对象. addJavascriptInte易做图ce(Object obj,String inte易做图ceName);
 
c.页面中调用javascript对象. javascript:window.demo.方法名称();
 
在w3c标准中js有 window,history,document等标准对象,同样我们可以在开发浏览器时自己定义我们的对象调用手机系统功能来处理,这样使用js就可以 为所欲为了。
 
[java]  
public class WebViewDemo extends Activity {  
    private WebView mWebView;  
    private Handler mHandler = new Handler();  
  
    public void onCreate(Bundle icicle) {  
        super.onCreate(icicle);  
        setContentView(R.layout.webviewdemo);  
        mWebView = (WebView) findViewById(R.id.webview);  
        WebSettings webSettings = mWebView.getSettings();  
        webSettings.setJavaScriptEnabled(true);  
        mWebView.addJavascriptInte易做图ce(new Object() {  
            public void clickOnAndroid() {  
                mHandler.post(new Runnable() {  
                    public void run() {  
                        mWebView.loadUrl("javascript:wave()");  
                    }  
                });  
            }  
        }, "demo");  
        mWebView.loadUrl("file:///android_asset/demo.html");  
    }  
}  
6.WebView控制进度
[java]  
webView.setWebChromeClient(new WebChromeClient() {  
  
            public void onProgressChanged(WebView view, int progress) {  
  
                setTitle("页面加载中,请稍候..." + progress + "%");  
  
                setProgress(progress * 100);  
  
                if (progress == 100) {  
  
                    setTitle(R.string.app_name);  
  
                    progressBar.setVisibility(4);  
                }  
  
            }  
  
        });  
 
 
 
最后把MainActivity的代码贴上
 
[java]  
package com.example.webviewdemo;  
  
import android.app.Activity;  
import android.os.Bundle;  
import android.view.KeyEvent;  
import android.view.Menu;  
import android.webkit.WebChromeClient;  
import android.webkit.WebView;  
import android.webkit.WebViewClient;  
import android.widget.ProgressBar;  
  
public class MainActivity extends Activity {  
    WebView webView;  
    ProgressBar progressBar;  
  
    @Override  
    protected void onCreate(Bundle savedInstanceState) {  
补充:移动开发 , Android ,
CopyRight © 2022 站长资源库 编程知识问答 zzzyk.com All Rights Reserved
部分文章来自网络,