Android webview 初略

来源:互联网 发布:2017java就业形势 编辑:程序博客网 时间:2024/05/17 10:24

    浏览器控件是每个开发环境都具备的,windows有webbrowser,android和ios都有webview。只是其引擎不同,相对于微软的webbrowser,android及ios的webview的引擎都是webkit,对Html5提供支持。

添加权限:AndroidManifest.xml中必须使用许可"android.permission.INTERNET",否则会出Web page not available错误。
在要Activity中生成一个WebView组件:WebView webView = new WebView(this);或者可以在activity的layout文件里添加webview控件。

<WebView
android:id="@+id/wv"
android:layout_width="fill_parent"
        android:layout_height="fill_parent"
/>

设置webview要访问的页面。分为加载asset里的文件,加载网络文件,加载sdcard文件等

         mWebview.loadUrl("file:///android_asset/Chapter1_1.html");       
 mWebview.loadUrl("http://www.baidu.com");
 mWebview.loadUrl("content://com.android.htmlfileprovider/sdcard/Chapter1_1.html");//该条测试不成功     mWebview.loadUrl("file://"+Environment.getExternalStorageDirectory()+"/Chapter1_1.html");


如果访问的页面中有Javascript,则webview必须设置支持Javascript。
        webview.getSettings().setJavaScriptEnabled(true);  
        触摸焦点起作用
        requestFocus();
        取消滚动条
        this.setScrollBarStyle(SCROLLBARS_OUTSIDE_OVERLAY);


如果希望点击链接由自己处理,而不是新开Android的系统browser中响应该链接。给WebView添加一个事件监听对象(WebViewClient)并重写其中的一些方法

mWebview.setWebViewClient(new WebViewClient(){
public boolean shouldOverrideUrlLoading(WebView view, String url) {       
                view.loadUrl(url);       
                return true;       
            }       
});


webview与js

mWebview.addJavascriptInterface(new Object() {       
           public void clickOnAndroid() {       
               mHandler.post(new Runnable() {       
                   public void run() {       
                   mWebview.loadUrl("javascript:wave()");       
                   }       
               });       
           }       
 }, "demo");



原创粉丝点击