小男孩‘自慰网亚洲一区二区,亚洲一级在线播放毛片,亚洲中文字幕av每天更新,黄aⅴ永久免费无码,91成人午夜在线精品,色网站免费在线观看,亚洲欧洲wwwww在线观看

分享

Android 嵌入網(wǎng)頁,為H5開發(fā)做伏筆

 Bladexu的文庫 2017-07-26

 WebView可以使得網(wǎng)頁輕松的內(nèi)嵌到app里,還可以直接跟js相互調(diào)用。

webview有兩個方法:setWebChromeClient 和 setWebClient

setWebClient:主要處理解析,渲染網(wǎng)頁等瀏覽器做的事情

setWebChromeClient:輔助WebView處理JavaScript的對話框,網(wǎng)站圖標(biāo),網(wǎng)站title,加載進(jìn)度等 

WebViewClient就是幫助WebView處理各種通知、請求事件的。

 

在AndroidManifest.xml設(shè)置訪問網(wǎng)絡(luò)權(quán)限:

<uses-permission android:name="android.permission.INTERNET"/>

控件:

<WebView 
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:id="@+id/webView"
    />

 

用途一:加載本地/Web資源

example.html 存放在assets文件夾內(nèi)

調(diào)用WebView的loadUrl()方法,

加載本地資源

webView = (WebView) findViewById(R.id.webView);
webView.loadUrl("file:///android_asset/example.html");

加載web資源:

webView = (WebView) findViewById(R.id.webView);
webView.loadUrl("http://baidu.com");

 

用途二:在程序內(nèi)打開網(wǎng)頁

 

創(chuàng)建一個自己的WebViewClient,通過setWebViewClient關(guān)聯(lián)

復(fù)制代碼
package com.example.testopen;

import android.app.Activity;
import android.os.Bundle;
import android.webkit.WebView;
import android.webkit.WebViewClient;

public class MainActivity extends Activity {
private WebView webView;
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.test);             
        init();

    }
    

    private void init(){
        webView = (WebView) findViewById(R.id.webView);
        //WebView加載web資源
       webView.loadUrl("http://baidu.com");
        //覆蓋WebView默認(rèn)使用第三方或系統(tǒng)默認(rèn)瀏覽器打開網(wǎng)頁的行為,使網(wǎng)頁用WebView打開
       webView.setWebViewClient(new WebViewClient(){
           @Override
        public boolean shouldOverrideUrlLoading(WebView view, String url) {
            // TODO Auto-generated method stub
               //返回值是true的時候控制去WebView打開,為false調(diào)用系統(tǒng)瀏覽器或第三方瀏覽器
             view.loadUrl(url);
            return true;
        }
       });
    }
    
}
復(fù)制代碼

 

用途三:

如果訪問的頁面中有javascript,則webview必須設(shè)置支持Javascript

//啟用支持javascript
WebSettings settings = webView.getSettings();
settings.setJavaScriptEnabled(true);

 

用途四:

如果希望瀏覽的網(wǎng)頁后退而不是退出瀏覽器,需要WebView覆蓋URL加載,讓它自動生成歷史訪問記錄,那樣就可以通過前進(jìn)或后退訪問已訪問過的站點(diǎn)。

復(fù)制代碼
//改寫物理按鍵——返回的邏輯
    @Override
    public boolean onKeyDown(int keyCode, KeyEvent event) {
        // TODO Auto-generated method stub
        if(keyCode==KeyEvent.KEYCODE_BACK)
        {
            if(webView.canGoBack())
            {
                webView.goBack();//返回上一頁面
                return true;
            }
            else
            {
                System.exit(0);//退出程序
            }
        }
        return super.onKeyDown(keyCode, event);
    }
復(fù)制代碼

用途五:判斷頁面加載過程

復(fù)制代碼
    webView.setWebChromeClient(new WebChromeClient() {
            @Override
            public void onProgressChanged(WebView view, int newProgress) {
                // TODO Auto-generated method stub
                if (newProgress == 100) {
                    // 網(wǎng)頁加載完成

                } else {
                    // 加載中

                }

            }
        });
復(fù)制代碼

用途六:緩存的使用

優(yōu)先使用緩存

webView.getSettings().setCacheMode(WebSettings.LOAD_CACHE_ELSE_NETWORK);

不使用緩存:

webView.getSettings().setCacheMode(WebSettings.LOAD_NO_CACHE);

  

    本站是提供個人知識管理的網(wǎng)絡(luò)存儲空間,所有內(nèi)容均由用戶發(fā)布,不代表本站觀點(diǎn)。請注意甄別內(nèi)容中的聯(lián)系方式、誘導(dǎo)購買等信息,謹(jǐn)防詐騙。如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請點(diǎn)擊一鍵舉報(bào)。
    轉(zhuǎn)藏 分享 獻(xiàn)花(0

    0條評論

    發(fā)表

    請遵守用戶 評論公約

    類似文章 更多