WebView的使用

来源:互联网 发布:js 跳转url 编辑:程序博客网 时间:2024/06/08 03:50

Android 中涉及到与js的交互问题。。。离不开WebView

WebView相当于Android中的浏览器。。。

案例如下: WebView访问自定义的html页面,html页面中 包含简单的操作

访问本地的html,html文件写到assets文件夹中,也可以访问外部网络。。。

import android.os.Bundle;
import android.app.Activity;
import android.view.KeyEvent;
import android.view.Menu;
import android.view.View;
import android.webkit.WebChromeClient;
import android.webkit.WebView;
import android.webkit.WebViewClient;
import android.widget.Toast;

public class MainActivity extends Activity {

    private WebView webView = null;
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        init();
    }
    
    private void init() {
        webView = (WebView) findViewById(R.id.myWebView);
        //让webView 充当浏览网址的客户端,避免浏览器访问网址
        webView.setWebViewClient(new WebViewClient());
        
        //让webView支持普通的JavaScript语言
        webView.getSettings().setJavaScriptEnabled(true);
        webView.getSettings().setDefaultTextEncodingName("utf-8");
        //让WebView支持类似alert这样的特殊javascript语句
        webView.setWebChromeClient(new WebChromeClient());
        
        //String htmlString = "<!DOCTYPE html><html><head><meta charset=\"UTF-8\"><title>我的第一个HTml5页面</title></head><body><script>alert('用户名不可以为 空!');document.write(\"用户登录:\");</script><form action=\"http://www.baidu.com\"><div>用户名:<input type=\"text\" name=\"username\"/></div><div>密码:<input type=\"password\" name=\"\" /></div><div><input type=\"submit\" value=\"登录\"></div></form></body></html>";
        //webView.loadData(htmlString , "text/html;charset=utf-8" , "utf-8");
        //webView.loadUrl("file:///android_asset/index1.html");  //访问本地的html,html文件写到assets文件夹中。。。file:///android_asset/这是固定的,不是你自己的文件夹名
        webView.loadUrl("http://www.baidu.com");
        /**
         * 用WebView点击链接看了很多页后为了让WebView支持回退的功能,需要
         * 复写activity中的onKeydown()方法,如果我们不做任何处理的话,点
         * 击系统的回退键 ,整个浏览器会调用finish()而结束自身,而不是退到上一页面
         */
        webView.setOnKeyListener(new View.OnKeyListener() {
            @Override
            public boolean onKey(View view, int keyCode, KeyEvent event) {
                if(keyCode == KeyEvent.KEYCODE_BACK && webView.canGoBack()) {
                    webView.goBack();
                    return true;
                }
                return false;
            }
        });
    }
    
}

<!DOCTYPE html><html>        <head>        <meta charset=\"UTF-8\">            <title>我的第一个HTml5页面</title>        </head>   <body>       <script>alert('用户名不可以为空!');document.write(\"用户登录:\");</script>       <form action=\"http://www.baidu.com\">       <div>用户名:<input type=\"text\" name=\"username\"/></div>       <div>密 码:<input type="password" name="pwd" /></div>       <div><input type="submit" value="登录"></div>       </form>   </body></html>



1 0
原创粉丝点击