WebView請(qǐng)求頁(yè)面的使用

簡(jiǎn)單的三行代碼既可以實(shí)現(xiàn)

 private String url="http://2014.qq.com";
    private WebView webView;
    private ProgressDialog dialog;


   Uri uri=Uri.EMPTY.parse(url);
        Intent i=new Intent(Intent.ACTION_VIEW,uri);
        startActivity(i);

我們實(shí)現(xiàn)一個(gè)請(qǐng)求服務(wù)器上的頁(yè)面操作步驟

 private  void init(){
        webView=(WebView)findViewById(R.id.webview);
        webView.loadUrl(url);//加載頁(yè)面路徑
如果說(shuō)需要加載后臺(tái)服務(wù)器的路徑需要獲取(有配置文件)
      Properties properties = readConf.getProperties(getActivity());
      serverUrl = properties.getProperty("serverUrl");
      reRefresh()
        //覆蓋webview默認(rèn)通過(guò)第三方或者瀏覽器打開第三方的行為吉嚣,是的網(wǎng)頁(yè)在webview中打開
       webview.setWebViewClient(webClient); //設(shè)置Web視圖
        //啟用支持javascript
        setUpView()
        //加載頁(yè)面優(yōu)先使用加載緩存頁(yè)面 其次再?gòu)木W(wǎng)路獲取
        settings.setCacheMode(WebSettings.LOAD_CACHE_ELSE_NETWORK);
      //判斷頁(yè)面加載過(guò)程
      setViewProgress() 
    }

--------------------------下面都是封裝的方法提供調(diào)用------------------------------------------------------
//請(qǐng)求頁(yè)面路徑:
 private void reRefresh() {

        OFZAPLog.info(LOG_TAG, "reRefresh");

        webview.loadUrl(serverUrl + "/mess/message.html");
        //webview.loadUrl("https://www.baidu.com");
        webview.reload();

    }


       WebViewClient webClient = new WebViewClient(){
            @Override
            public boolean shouldOverrideUrlLoading(WebView view, WebResourceRequest request) {
                //true的時(shí)候控制網(wǎng)也在webview中打開朗儒,false在第三方瀏覽器打開
                view.loadUrl(url);
                return true;
            }
            //WebViewClient幫助webview去處理一些頁(yè)面控制宏娄,和請(qǐng)求通知

        @TargetApi(android.os.Build.VERSION_CODES.M)
        @Override
        public void onReceivedHttpError(WebView view, WebResourceRequest request, WebResourceResponse errorResponse) {
            super.onReceivedHttpError(view, request, errorResponse);
            // 這個(gè)方法在6.0才出現(xiàn)
            int statusCode = errorResponse.getStatusCode();
            System.out.println("onReceivedHttpError code = " + statusCode);
            if (404 == statusCode || 500 == statusCode) {
                if (isRefresh) {
                    view.loadUrl("file:///android_asset/error.html?info=頁(yè)面錯(cuò)誤渐行,請(qǐng)稍后再試");
                    isRefresh = false;
                } else {
                    webview.reload();
                    isRefresh = true;
                }
            }
        }

        @Override
        public void onReceivedError(WebView view, int errorCode, String description, String failingUrl) {
            super.onReceivedError(view, errorCode, description, failingUrl);//處理網(wǎng)頁(yè)加載失敗時(shí)
            view.setVisibility( View.GONE );
            view.loadUrl("file:///android_asset/error.html?info=網(wǎng)絡(luò)連接錯(cuò)誤潮秘,請(qǐng)稍后再試");
        }
            @Override
            public void onPageStarted(WebView view, String url, Bitmap favicon) {
                super.onPageStarted(view, url, favicon);
            }

            @Override
            public void onPageFinished(WebView view, String url) {
                super.onPageFinished(view, url);
            }
        });
}


 //判斷頁(yè)面加載過(guò)程
  private void setViewProgress() {
        webView.setWebChromeClient(new WebChromeClient(){
            @Override
            public void onProgressChanged(WebView view, int newProgress) {
                super.onProgressChanged(view, newProgress);
                //newProgress1--100的整數(shù)
                if (newProgress==100){
                    //加載完畢頁(yè)面  關(guān)閉progressDialog
                    closeDialog();

                }else {
                    //網(wǎng)頁(yè)正在加載  打開progressDialog
                    openDialog(newProgress);
                }
            }
            private void openDialog(int newProgress) {
                if (dialog==null){
                    dialog=new ProgressDialog(WevViewActivity.this);
                    dialog.setTitle("正在加載");
                    dialog.setProgressStyle(ProgressDialog.STYLE_HORIZONTAL);
                    dialog.setProgress(newProgress);
                    dialog.show();
                }else {
                    dialog.setProgress(newProgress);
                }
            }
            private void closeDialog() {
                if (dialog!=null&& dialog.isShowing()){
                    dialog.dismiss();
                    dialog=null;
                }
            }
        });
}



   //啟用支持javascript
 @SuppressLint("SetJavaScriptEnabled")
    private void setUpView() {
        //加載需要顯示的網(wǎng)頁(yè)
        WebSettings mWebSettings = webview.getSettings();
        mWebSettings.setJavaScriptEnabled(true);  //允許加載javascript
        mWebSettings.setDomStorageEnabled(true);

        webview.setWebViewClient(webClient); //設(shè)置Web視圖
    }

  @Override
    public boolean onKeyDown(int keyCode, KeyEvent event) {
        if(keyCode==KeyEvent.KEYCODE_BACK){
            //Toast.makeText(this,webView.getUrl(),Toast.LENGTH_SHORT).show();
            if(webView.canGoBack()){
                webView.goBack();//返回上一頁(yè)
                return true;
            }
            else {
//                退出
               System.exit(0);
            }

        }
        return super.onKeyDown(keyCode, event);
    }
webView

image.png
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末腐宋,一起剝皮案震驚了整個(gè)濱河市核行,隨后出現(xiàn)的幾起案子喇完,更是在濱河造成了極大的恐慌伦泥,老刑警劉巖,帶你破解...
    沈念sama閱讀 212,599評(píng)論 6 492
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件锦溪,死亡現(xiàn)場(chǎng)離奇詭異不脯,居然都是意外死亡,警方通過(guò)查閱死者的電腦和手機(jī)刻诊,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 90,629評(píng)論 3 385
  • 文/潘曉璐 我一進(jìn)店門防楷,熙熙樓的掌柜王于貴愁眉苦臉地迎上來(lái),“玉大人则涯,你說(shuō)我怎么就攤上這事复局。” “怎么了粟判?”我有些...
    開封第一講書人閱讀 158,084評(píng)論 0 348
  • 文/不壞的土叔 我叫張陵肖揣,是天一觀的道長(zhǎng)。 經(jīng)常有香客問(wèn)我浮入,道長(zhǎng)龙优,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 56,708評(píng)論 1 284
  • 正文 為了忘掉前任事秀,我火速辦了婚禮彤断,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘易迹。我一直安慰自己宰衙,他們只是感情好,可當(dāng)我...
    茶點(diǎn)故事閱讀 65,813評(píng)論 6 386
  • 文/花漫 我一把揭開白布睹欲。 她就那樣靜靜地躺著供炼,像睡著了一般一屋。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上袋哼,一...
    開封第一講書人閱讀 50,021評(píng)論 1 291
  • 那天冀墨,我揣著相機(jī)與錄音,去河邊找鬼涛贯。 笑死诽嘉,一個(gè)胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的弟翘。 我是一名探鬼主播虫腋,決...
    沈念sama閱讀 39,120評(píng)論 3 410
  • 文/蒼蘭香墨 我猛地睜開眼,長(zhǎng)吁一口氣:“原來(lái)是場(chǎng)噩夢(mèng)啊……” “哼稀余!你這毒婦竟也來(lái)了悦冀?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 37,866評(píng)論 0 268
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤睛琳,失蹤者是張志新(化名)和其女友劉穎雏门,沒(méi)想到半個(gè)月后,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體掸掏,經(jīng)...
    沈念sama閱讀 44,308評(píng)論 1 303
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡茁影,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 36,633評(píng)論 2 327
  • 正文 我和宋清朗相戀三年,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了丧凤。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片募闲。...
    茶點(diǎn)故事閱讀 38,768評(píng)論 1 341
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡,死狀恐怖愿待,靈堂內(nèi)的尸體忽然破棺而出浩螺,到底是詐尸還是另有隱情,我是刑警寧澤仍侥,帶...
    沈念sama閱讀 34,461評(píng)論 4 333
  • 正文 年R本政府宣布要出,位于F島的核電站,受9級(jí)特大地震影響农渊,放射性物質(zhì)發(fā)生泄漏患蹂。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 40,094評(píng)論 3 317
  • 文/蒙蒙 一砸紊、第九天 我趴在偏房一處隱蔽的房頂上張望传于。 院中可真熱鬧,春花似錦醉顽、人聲如沸沼溜。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,850評(píng)論 0 21
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)系草。三九已至通熄,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間找都,已是汗流浹背唇辨。 一陣腳步聲響...
    開封第一講書人閱讀 32,082評(píng)論 1 267
  • 我被黑心中介騙來(lái)泰國(guó)打工, 沒(méi)想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留檐嚣,地道東北人。 一個(gè)月前我還...
    沈念sama閱讀 46,571評(píng)論 2 362
  • 正文 我出身青樓啰扛,卻偏偏與公主長(zhǎng)得像嚎京,于是被迫代替她去往敵國(guó)和親。 傳聞我的和親對(duì)象是個(gè)殘疾皇子隐解,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 43,666評(píng)論 2 350

推薦閱讀更多精彩內(nèi)容

  • 關(guān)于Mongodb的全面總結(jié) MongoDB的內(nèi)部構(gòu)造《MongoDB The Definitive Guide》...
    中v中閱讀 31,914評(píng)論 2 89
  • Swift1> Swift和OC的區(qū)別1.1> Swift沒(méi)有地址/指針的概念1.2> 泛型1.3> 類型嚴(yán)謹(jǐn) 對(duì)...
    cosWriter閱讀 11,093評(píng)論 1 32
  • 發(fā)現(xiàn) 關(guān)注 消息 iOS 第三方庫(kù)鞍帝、插件、知名博客總結(jié) 作者大灰狼的小綿羊哥哥關(guān)注 2017.06.26 09:4...
    肇東周閱讀 12,066評(píng)論 4 62
  • 看了《長(zhǎng)投的前世今生》煞茫,無(wú)形之中增加了對(duì)長(zhǎng)投的信任帕涌。 看到創(chuàng)始人最初為了能夠給中小投資者提供有用信息和幫助而創(chuàng)造一...
    輕風(fēng)style閱讀 323評(píng)論 0 1
  • 今天是中考的第一天,與往年一樣续徽,不必過(guò)多地去渲染蚓曼,看到學(xué)生輕輕松松入場(chǎng),快快樂(lè)樂(lè)出場(chǎng)钦扭,老師們認(rèn)認(rèn)真真服務(wù)纫版,家長(zhǎng)們?nèi)?..
    知北老師閱讀 800評(píng)論 0 4