亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 編程 > Java > 正文

在Android系統中使用WebViewClient處理跳轉URL的方法

2019-11-26 15:02:12
字體:
來源:轉載
供稿:網友

前言
最近代碼里和WebView有很多的交互,webview是android中的瀏覽器控件,這里主要介紹一下webview如何重載WebViewClient類來控制URL加載。

使用WebViewClient
使用WebViewClinet主要是繼承WebViewClient父類,根據需要重寫其中的方法,并在WebView中進行配置,示例代碼如下:

   

 webView = (WebView) findViewById(R.id.webview);   webView.setWebViewClient(new ExampleWebViewClient());   private class ExampleWebViewClient extends WebViewClient {     @Override     public void onReceivedSslError(WebView view, SslErrorHandler handler, SslError error) {       handler.proceed();     }        @Override     public boolean shouldOverrideUrlLoading(WebView view, String url) {       view.loadUrl(url);       return true;     }        @Override     public void onPageFinished(WebView view, String url) {       super.onPageFinished(view, url);     }        @Override     public void onPageStarted(WebView view, String url, Bitmap favicon) {       super.onPageStarted(view, url, favicon);     }        @Override     public void onLoadResource(WebView view, String url) {       super.onLoadResource(view, url);     }   } 


WebViewClient方法
1. shouldOverrideUrlLoading(WebView view, String url)

    官方注釋:Give the host application a chance to take over the control when a new url is about to be loaded in the current WebView. If WebViewClient is not provided,by default WebView will ask Activity Manager to choose the proper handler for the url. If WebViewClient is provided, return true means the host application handles the url, while return false means the current WebView handles the url. This method is not called for requests using the POST "method". 

翻譯:當一個新的url要在當前WebView進行加載的時候,這個方法給應用一個機會來控制url的處理。如果WebView沒有setWebViewClient,則默認操作是WebView將詢問Activity Manager獲取合適的handler處理url。如果WebView設置了setWebViewClient,返回true代表當前應用來處理url,返回false則代表當前webview來處理url。如果http請求是POST方法,該方法將不會被調用。
代碼示例:

 

  /**    * 所有以www.example.com開頭的url調用系統瀏覽器打開 其他的url在當前webview打開    */   @Override   public boolean shouldOverrideUrlLoading(WebView view, String url) {     if (url.indexOf("http://www.example.com") != -1) {       // 調用系統默認瀏覽器處理url       view.stopLoading();       view.getContext().startActivity(new Intent(Intent.ACTION_VIEW, Uri.parse(url)));       return true;     }     return false;   } 

2. shouleOverrideKeyEvent(WebView view, KeyEvent event)

    官方注釋:Give the host application a chance to handle the key event synchronously. e.g. menu shortcut key events need to be filtered this way. If return true, WebView will not handle the key event. If return false, WebView will always handle the key event, so none of the super in the view chain will see the key event. The default behavior returns false. 

翻譯:給當前應用一個機會來異步處理按鍵事件。返回true,WebView將不會處理該按鍵事件,返回false,WebView將處理該按鍵事件。默認返回是false。
3. onPageStarted(WebView view, String url, Bitmap favicon)和onPageFinished(WebView view, String url)

    官方注釋:Notify the host application that a page has started loading. This method is called once for each main frame load so a page with iframes or framesets will call onPageStarted one time for the main frame. This also means that onPageStarted will not be called when the contents of an embedded frame changes, i.e. clicking a link whose target is an iframe. 

翻譯:當頁面開始加載時被調用。但是,當頁面被嵌套時(例如iframe里有一個鏈接跳轉),該方法將不會被調用。(今天就遇到了這種情況,可以通過重載onLoadResource來控制url跳轉)

    官方注釋:Notify the host application that a page has finished loading. This method is called only for main frame. When onPageFinished() is called, the rendering picture may not be updated yet. To get the notification for the new Picture, use onNewPicture(WebView, Picture). 

翻譯:在頁面加載結束時被調用。
代碼示例:

    // 獲取頁面加載時間  
   

 private long startTime;   private long endTime;   private long spendTime;      @Override   public void onPageFinished(WebView view, String url) {     endTime = System.currentTimeMillis();     spendTime = endTime - startTime;     Toast.makeText(view.getContext(), "spend time is:" + spendTime, Toast.LENGTH_SHORT).show();   }      @Override   public void onPageStarted(WebView view, String url, Bitmap favicon) {     startTime = System.currentTimeMillis();   } 

4. onLoadResource(WebView view, String url)

    官方注釋:Notify the host application that the WebView will load the resource specified by the given url. 

翻譯:通知應用程序WebView將要加載指定url的資源,每一個資源(例如圖片,嵌套url,js,css文件)。(可以通過該方法處理iframe嵌套的url)
代碼示例:

  @Override   public void onLoadResource(WebView view, String url) {     if (url.indexOf("http://www.example.com") != -1 && view != null) {       view.stopLoading();       view.getContext().startActivity(new Intent(Intent.ACTION_VIEW, Uri.parse(url)));     }         } 

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
欧美一级成年大片在线观看| 毛片精品免费在线观看| 一区二区三区天堂av| 欧美激情网友自拍| 久久精品国产亚洲一区二区| 国产精品91一区| 欧美理论电影网| 国产精品美女久久久久av超清| 日韩美女中文字幕| 久久精品影视伊人网| 欧美高清激情视频| 久久精品中文字幕免费mv| 成人做爰www免费看视频网站| 精品久久久999| 国产日韩欧美视频在线| 91豆花精品一区| 中文字幕日韩av电影| 久久夜精品香蕉| 欧美激情精品久久久久| 午夜精品一区二区三区av| 欧美日韩中文字幕在线| 91精品国产免费久久久久久| 欧美性xxxx极品高清hd直播| 欧美日韩中文字幕在线| 欧美性受xxxx白人性爽| 亚洲第一av在线| 中文字幕亚洲综合久久| 成人精品久久av网站| 日韩精品在线观看视频| 国产在线拍揄自揄视频不卡99| 亚洲一区中文字幕| 日韩黄在线观看| 亚洲综合最新在线| 国产午夜精品全部视频播放| 亚洲国产精品美女| 久久国产精品久久久久| 亚洲精品综合久久中文字幕| 欧美日韩福利在线观看| 欧美精品久久一区二区| 96国产粉嫩美女| 国内精品久久久久| 亚洲国产成人久久| 大胆人体色综合| 国产精品美女999| 亚洲新声在线观看| 亚洲欧美成人网| 在线观看视频亚洲| 久久精品2019中文字幕| 日本精品视频在线观看| 亚洲精品99久久久久中文字幕| 不卡在线观看电视剧完整版| 午夜欧美大片免费观看| 色噜噜狠狠狠综合曰曰曰88av| 午夜精品国产精品大乳美女| 亚洲一区二区在线播放| 久久人人爽国产| 国产乱人伦真实精品视频| 91色在线视频| 91深夜福利视频| 91夜夜未满十八勿入爽爽影院| 中文字幕一精品亚洲无线一区| 欧美成人激情视频| 久久午夜a级毛片| 久久国产一区二区三区| 国产情人节一区| 国产精品视频成人| 91在线精品播放| 成人国产精品免费视频| 亚洲欧美一区二区激情| 91影院在线免费观看视频| 欧美成人sm免费视频| xvideos亚洲| 亚洲精品欧美一区二区三区| 日韩电影免费观看在线观看| 精品久久久久久久久久| 久久综合久久八八| 国产成人精品免高潮在线观看| 日韩一中文字幕| 日韩免费观看网站| 最新国产精品亚洲| 国产精品久久久久久久久久久不卡| 国产精品6699| 精品国产91久久久| 日韩欧美在线免费| 伊人av综合网| 亚洲精品美女在线观看| 欧美午夜片在线免费观看| 日韩人在线观看| 久久久久久亚洲精品中文字幕| 精品久久久久久久久久久久| 国产精品成人播放| 黄色一区二区在线观看| 色视频www在线播放国产成人| 欧美日韩第一页| 日本一区二区三区在线播放| 久久国产精品亚洲| 国产在线观看一区二区三区| 国产极品精品在线观看| 欧美日韩成人在线视频| 成人激情在线观看| 亚洲欧美日韩视频一区| 亚洲一区二区免费| 在线亚洲午夜片av大片| 国产小视频国产精品| 日本一区二区在线播放| 国内精品久久久久久久| 亚洲精品中文字幕女同| 中文字幕最新精品| 欧美性极品少妇精品网站| 久久99久国产精品黄毛片入口| 日韩精品中文字幕久久臀| 成人性教育视频在线观看| 在线电影中文日韩| 中文字幕精品在线| 日韩电影中文字幕av| 中文字幕精品在线视频| 国产在线98福利播放视频| 成人h片在线播放免费网站| 欧美日韩国产中文字幕| 亚洲天堂男人天堂| 北条麻妃一区二区在线观看| 亚洲国产精品久久精品怡红院| 国产精品免费网站| 不卡av电影在线观看| 欧美国产极速在线| 久久69精品久久久久久国产越南| 日韩av片永久免费网站| 91性高湖久久久久久久久_久久99| 欧美激情亚洲激情| 久久亚洲精品国产亚洲老地址| 欧美激情视频一区二区三区不卡| 亚洲激情第一页| 欧美激情亚洲一区| 亚洲欧美日韩中文在线制服| 国产偷国产偷亚洲清高网站| 91精品国产99久久久久久| 在线播放日韩专区| 欧美日韩国产成人高清视频| 亚洲综合中文字幕在线| 一区国产精品视频| 久久久中精品2020中文| 亚洲一区久久久| 欧美精品www在线观看| 国产精品ⅴa在线观看h| 日韩一区二区精品视频| 自拍亚洲一区欧美另类| 欧美俄罗斯性视频| 日韩欧美在线视频免费观看| 久久福利视频导航| 亚洲精品xxxx| 日韩一二三在线视频播| 久久青草精品视频免费观看| 日韩精品视频中文在线观看| 亚洲欧美日本精品| 国产成人午夜视频网址| 亚洲电影免费观看高清| 欧美怡春院一区二区三区| 91av福利视频| 狠狠做深爱婷婷久久综合一区| 亚洲欧美中文字幕| 日韩av手机在线看| 一区二区福利视频| 亚洲天堂久久av| 亚洲国产精品成人精品|