1. 程式人生 > >WebView錯誤碼處理,及常用的方法

WebView錯誤碼處理,及常用的方法

1. 開啟網頁時不呼叫系統瀏覽器, 而是在本WebView中顯示:

複製程式碼
mWebView.setWebViewClient(new WebViewClient(){
      @Override
      public boolean shouldOverrideUrlLoading(WebView view, String url) {
          view.loadUrl(url);
          return true;
      }
  });
複製程式碼

2. 通過java程式碼呼叫javascript

複製程式碼
WebSettings webSettings =   mWebView .getSettings();       
webSettings.setJavaScriptEnabled(
true); mWebView.addJavascriptInterface(new Object() { public void clickOnAndroid() { mHandler.post(new Runnable() { public void run() { webview.loadUrl("javascript:wave()"); } }); } },
"demo");
複製程式碼

3. 按返回鍵時, 不退出程式而是返回上一瀏覽頁面:

複製程式碼
public boolean onKeyDown(int keyCode, KeyEvent event) {       
        if ((keyCode == KeyEvent.KEYCODE_BACK) && mWebView.canGoBack()) {       
            mWebView.goBack();       
            return true;       
        }       
        return super
.onKeyDown(keyCode, event); }
複製程式碼

4. 開啟頁面時, 自適應螢幕:

WebSettings webSettings =   mWebView .getSettings();       
webSettings.setUseWideViewPort(true);//設定此屬性,可任意比例縮放
webSettings.setLoadWithOverviewMode(true);

5. 便頁面支援縮放:

WebSettings webSettings =   mWebView .getSettings();       
webSettings.setJavaScriptEnabled(true);  
webSettings.setBuiltInZoomControls(true);
webSettings.setSupportZoom(true);

6.如果webView中需要使用者手動輸入使用者名稱、密碼或其他,則webview必須設定支援獲取手勢焦點。

webview.requestFocusFromTouch();

7.WebView 載入介面主要呼叫三個方法:LoadUrl、LoadData、LoadDataWithBaseURL. 

1、LoadUrl            直接載入網頁、圖片並顯示.(本地或是網路上的網頁、圖片、gif)  
2、LoadData           顯示文字與圖片內容 (模擬器1.5、1.6)  
3、LoadDataWithBase  顯示文字與圖片內容(支援多個模擬器版本) 

8.WebSettings 的常用方法介紹

複製程式碼
setJavaScriptEnabled(true);  //支援js

setPluginsEnabled(true);  //支援外掛 

setUseWideViewPort(false);  //將圖片調整到適合webview的大小 

setSupportZoom(true);  //支援縮放 

setLayoutAlgorithm(LayoutAlgorithm.SINGLE_COLUMN); //支援內容重新佈局  

supportMultipleWindows();  //多視窗 

setCacheMode(WebSettings.LOAD_CACHE_ELSE_NETWORK);  //關閉webview中快取 

setAllowFileAccess(true);  //設定可以訪問檔案 

setNeedInitialFocus(true); //當webview呼叫requestFocus時為webview設定節點

webview webSettings.setBuiltInZoomControls(true); //設定支援縮放 

setJavaScriptCanOpenWindowsAutomatically(true); //支援通過JS開啟新視窗 

setLoadWithOverviewMode(true); // 縮放至螢幕的大小

setLoadsImagesAutomatically(true);  //支援自動載入圖片
複製程式碼

9.WebViewClient 的方法全解

複製程式碼
doUpdateVisitedHistory(WebView view, String url, boolean isReload)  //(更新歷史記錄) 

onFormResubmission(WebView view, Message dontResend, Message resend) //(應用程式重新請求網頁資料) 

onLoadResource(WebView view, String url) // 在載入頁面資源時會呼叫,每一個資源(比如圖片)的載入都會呼叫一次。 

onPageStarted(WebView view, String url, Bitmap favicon) //這個事件就是開始載入頁面呼叫的,通常我們可以在這設定一個loading的頁面,告訴使用者程式在等待網路響應。 

onPageFinished(WebView view, String url) //在頁面載入結束時呼叫。同樣道理,我們知道一個頁面載入完成,於是我們可以關閉loading 條,切換程式動作。 

onReceivedError(WebView view, int errorCode, String description, String failingUrl)// (報告錯誤資訊) 

onReceivedHttpAuthRequest(WebView view, HttpAuthHandler handler, String host,String realm)//(獲取返回資訊授權請求) 
 
onReceivedSslError(WebView view, SslErrorHandler handler, SslError error) //重寫此方法可以讓webview處理https請求。
 
onScaleChanged(WebView view, float oldScale, float newScale) // (WebView發生改變時呼叫) 

onUnhandledKeyEvent(WebView view, KeyEvent event) //(Key事件未被載入時呼叫) 

shouldOverrideKeyEvent(WebView view, KeyEvent event)//重寫此方法才能夠處理在瀏覽器中的按鍵事件。 

shouldOverrideUrlLoading(WebView view, String url) 
//在點選請求的是連結是才會呼叫,重寫此方法返回true表明點選網頁裡面的連結還是在當前的webview裡跳轉,不跳到瀏覽器那邊。這個函式我們可以做很多操作,比如我們讀取到某些特殊的URL,於是就可以不開啟地址,取消這個操作,進行預先定義的其他操作,這對一個程式是非常必要的。
複製程式碼
</pre><pre code_snippet_id="1845805" snippet_file_name="blog_20160825_5_1958076" name="code" class="java">webView.setWebViewClient(new MyWebViewClient());// webView.setWebViewClient()網頁載入預設是使用瀏覽器的,這裡需要設定一下

		webView.setWebChromeClient(new WebChromeClient(){
			@Override
			public void onReceivedTitle(WebView view, String title) {
				// TODO Auto-generated method stub
				super.onReceivedTitle(view, title);
				Log.i("TAG", title);//獲取網頁title
			}

		});

	}
	/* 
	 * 建立內部類繼承WebViewClient,重寫其中的方法
	 *  
	 * */  
	class MyWebViewClient extends WebViewClient{  
		@Override  
		public boolean shouldOverrideUrlLoading(WebView view, String url) {  

			view.loadUrl(url);//覆蓋瀏覽器打方式,(不使用瀏覽器開啟頁面  )
			return true;  
		}  

		public void onReceivedError(WebView view, int errorCode,
				String description, String failingUrl) {
			// TODO Auto-generated method stub
			super.onReceivedError(view, errorCode, description, failingUrl);
			webView.loadUrl("file:///android_asset/error.html");//載入本地html錯誤介面
		}
	}  

//在onReceiverError方法中設定要顯示的介面,這裡是載入的asset目錄下的html檔案。

你也可以設定webView不可見,同時設定要顯示的View為可見形式

相關推薦

WebView誤碼處理常用方法

1. 開啟網頁時不呼叫系統瀏覽器, 而是在本WebView中顯示: mWebView.setWebViewClient(new WebViewClient(){ @Override public boolean shouldOverrideU

MyBatis多個接口參數報:Available parameters are [0, 1, param1, param2] 解決方法

pan 解決 而且 crm ger int mybatis 添加 為什麽 1. sql語句如下:  SELECT * FROM tb_crm_user WHERE id = #{userId, jdbcType=INTEGER} AND

接入支付寶支付 誤碼4000排查方法——開發記錄

最近,寫專案,再一次使用到了微信支付,和支付寶支付。之前無數次爬坑, 可是每次出現的問題總是不一樣,這一次接入支付寶,和微信,一共浪費了兩天時間。 總結下,遇到坑的問題所在。 重點標註下——全部都是後臺的問題,全部都是後臺的。或者是開放平臺配置的問題。跟移動端沒有毛關係。沒有毛關係。 有

Struts2中將global-exception定位到一個Action中處理獲取其異常資訊的方法

通常情況下,會使用Struts2的異常框架對系統中產生的異常進行統一處理,其好處是可以讓開發人員減少程式成中的try catch塊,更多的關於業務處理,並且可以通過global與區域性異常的配合使用,達到理想的效果。 當使用了這種方式之後,其異常可以指向一個re

數字影象處理之特徵提取常用方法

形狀特徵   (一)特點:各種基於形狀特徵的檢索方法都可以比較有效地利用影象中感興趣的目標來進行檢索,但它們也有一些共同的問題,包括:①目前基於形狀的檢索方法還缺乏比較完善的數學模型;②如果目標有變形時檢索結果往往不太可靠;③許多形狀特徵僅描述了目標區域性的性質,要全面描述目標常對計算時間和儲存量有較高的要

minigui常用介面美化方法常用函式使用

1.獲得子窗體的文字內容 char buff[100]; HWND parent = GetParent(hwnd);   //通過子控制元件控制代碼獲得父窗體控制代碼 SendDlgItemMessage(parent,IDC_STRING,MSG_GETTEXT,99,

node.js零基礎詳細教程(7):node.js操作mongodb操作方法的封裝

font 裏的 ges 格式 上進 ins 方法 回調函數 方式 第七章 建議學習時間4小時 課程共10章 學習方式:詳細閱讀,並手動實現相關代碼 學習目標:此教程將教會大家 安裝Node、搭建服務器、express、mysql、mongodb、編寫後臺業務邏輯、編寫接口

javascript字符串屬性常用方法總結

ring 方法總結 search lower 指定 you 數組 參數 world length屬性:str.length; 常用方法: 1. str.charAt(n) 查找字符串中的第n個字符,如果不在0~str.length-1之間,則返回一個空字符串 2 .st

Appium-關於appium的原生控件的 xpath 定位問題常用方法

相對路徑 使用 都是 classname 按鈕 bsp ref android 這樣的 最近遇到的項目,發現很多元素,都沒有標明id、text、content-desc,classname中又有很多是相同,導致無法定位      第一,appium1.5及之後的版本廢棄了n

接口測試、概念常用方法小結

信息 按鈕 站點 json字符串 交互 應用程序 書籍 ima 內容 1.接口的概念從IT的角度出發,主要是子模塊或者子系統間交互並相互作用的部分。從形式上來看各種應用程序的API(最著名的Windows 系統的API),硬件的驅動程序,數據庫系統的訪問接口,再到後來的We

關於機器學習中文本處理的一些常用方法

機器學習 tfidf lda word2vec前言 文本挖掘也是機器學習或者說是人工智能最需要處理的一類信息(其它的諸如語音、圖像及視頻處理等);隨著數字信息化和網絡化進程不斷深入,用戶的在線交流、發布、共享等都被以文字形式記錄下來,它們成為分析語言和理解社會的重要素材來源,對於文本的挖掘主要包括文檔分類、

python數據類型常用方法

方法 數據類型 文件處理一、數字數字類型包含整型、浮點型,還包含不太常用的長整型、復數。二、字符串定義:在單引號\雙引號\三引號內,由一串字符組成msg='hello world'1、切片print(msg[1:8]) #從下標為1的字符開始取,顧頭不顧尾,所以取到第七個字符

JDBC中重要的類/接口-Connection、DriverManager、ResultSet、Statement常用方法

prepare 獲取 ger 常用方法 命名 lose 參數設置 語言 查詢 DriverManager(管理一組 JDBC 驅動程序的基本服務) 它的方法: getConnection(String url, String user, String passwor

SpringMVC源碼分析-400異常處理流程解決方法

defining count ror error this 設計模式 進入 如何 16px 本文設計SpringMVC異常處理體系源碼分析,SpringMVC異常處理相關類的設計模式,實際工作中異常處理的實踐。 問題場景 假設我們的SpringMVC應用中有如下控制器: 代

js數據類型OA北京轉賽車平臺出租換常用方法、內置對象

fine 頂層函數 second 小寫 最後一個元素 min 不存在 eth from Date 對象OA北京轉賽車平臺出租 haozbbs.com Q1446595067 Date 對象用於處理日期和時間。創建 Date 對象的語法: var myDate=new D

JSP內建物件常用方法

JSP九大內建物件作用域名 name 名稱 型別 作用域 request 請求物件 javax.servlet.ServleRequest Request

Android開發中的SQLite事務處理即beginTransaction()方法

使用SQLiteDatabase的beginTransaction()方法可以開啟一個事務,程式執行到endTransaction() 方法時會檢查事務的標誌是否為成功,如果程式執行到endTransaction()之前呼叫了setTransactionSuccessful() 

java字串建立常用方法

字串String(一個字元陣列,常量,不可變): 1. 建立並初始化字串:   1). 使用字串常量直接初始化 String s="hello!";   2). 使用構造方法建立並初始化     String();//初始化一個物件,表示空字元序列     String(valu

NDVI 資料處理估算植被覆蓋度(二)arcgis 柵格轉ascii

經過上一步的處理,得到了11年*12月 共132各tif影象。 接下來把tif影象轉成我們習慣使用的文字格式,即經度,緯度,ndvi。共三列。當然也可以根據個人偏好製作為nc檔案等(製作nc檔案可參見我的部落格)。 一般在 ASCII 柵格的檔案頭中我們會看到這幾行:

Apache-commons-io包的使用常用方法

      首先,我們要下載FileUtils相關的Apache-commons-io jar包以及api文件。FileUtils類庫的下載頁面在:       http://commons.apache.org/proper/com