當前位置:首頁 » 安卓系統 » androidloaddata

androidloaddata

發布時間: 2022-10-11 04:50:56

Ⅰ 如何學習Android5.0 下 新的 webview 的實現

Android 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); //設置支持縮放
(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,於是就可以不打開地址,取消這個操作,進行預先定義的其他操作,這對一個程序是非常必要的。

Ⅱ 近期在研究Android系統下自帶的模塊Webview,想利用loadData()方法傳遞靜態HTML頁面來顯示網頁內容。

(1)個人看法:使用Webview;(2)Android2.3.3版本自帶的Webview模塊支持Html5網頁的顯示

Ⅲ android 怎麼在webview中載入 js文件

String
htmlCode
=
下面是htmlCode中的值
<html>
<head>
<script><script
type=\"text/javascript\"
src=
\"ww
w
.fo
ok
ii.c
om/js/jquery.js\"
/></script>
</head>
<body></body>
</html>
webview中用loadData(htmlCode);
//webview載入html代碼
把這個jquery.js文件放到了assets文件夾
src="file:///android_asset/xxx.js"
並且要用
String
baseUrl
=
"file:///android_asset";
WV_View.loadDataWithBaseURL(baseUrl,
strHtml,
"text/html",
"utf-8",
null);

Ⅳ android pulltorefresh scrollview下拉刷新上拉載入怎麼區分

listView.setMode(PullToRefreshBase.Mode.BOTH);
listView.setOnRefreshListener(new PullToRefreshBase.OnRefreshListener2<ListView>() {
@Override
public void onPullDownToRefresh(PullToRefreshBase<ListView> refreshView) {
page = 1;
loadData();
}

@Override
public void onPullUpToRefresh(PullToRefreshBase<ListView> refreshView) {
page++;
loadData();
}
});

首先要上下拉刷新功能先要設置刷新模式 為BOTH,
然後在設置監聽事件,裡面有重寫的兩個方法,一個是下拉的 一個是上啦的,
可以在裡面寫對應的 事件,比如 你上啦要幹些啥,就在onPullUpToRefresh中寫即可
手動打字比較類 ,湊合著看吧

Ⅳ webview的loaddata方法載入html不能正常解析width:100%的問題

loadData()中的html data中不能包含'#', '%', '\', '?'四中特殊字元,出現這種字元就會出現解析錯誤,顯示找不到網頁還有部分html代碼。需要如何處理呢?我們需要用UrlEncoder編碼為%23, %25, %27, %3f 。
可以使用以下兩種代碼,data為string類型的html代碼
1 webView.loadData(URLEncoder.encode(data, "utf-8"), "text/html", "utf-8");
這樣一些背景效果什麼的都不怎麼好看了。不推薦。
2 webView.loadDataWithBaseURL(null,data, "text/html", "utf-8", null);
這樣就會完美解析了。

Ⅵ android 4.4 後webview有什麼特性變化

由於項目中需要用到webview來顯示頁面,同時又需要根據webview顯示的htm裡面的鏈接(形如 <a href="xxxx" >Link</a>)進行各種跳轉(主要是native app 內部跳轉),所以需要用到WebViewClient 以及其中的shouldOverrideUrlLoading 方法來過濾各種請求,以方便做出正確的邏輯判斷。本來這樣做一直是沒有錯的,但是今天發現放到 4.4的機子上有些跳轉就沒法被識別出來了,我的同事johnny找到了說明文檔,發現了這個的解決辦法,這里我分享給大家。

首先貼出說明文檔android 說明文檔地址

值得一提的是,大家應該多關注這種說明文檔,一旦新版本的android系統出來,對於一些新特性,這里都會有相關的說明,對大家來說是很有用的。

在這里小小解釋下,<a href="showProfile">Show Profile</a>
這樣的鏈接,在4.4的系統中shouldOverrideUrlLoading方法就有可能無法捕獲,據我同事測試好像是被自動替換為了about:blank。
我們需要替換成<a href="example-app:showProfile">Show
Profile</a>,增加一個為example-app:的字元串就可以被捕獲到了,其中example自定義。但是很多時候的情況是,html文本本身也是通過某一個url請求到的,其內容對我們來說是位置的,所以我們沒法把每個鏈接做成我們需要的格式,或者說我們根本沒法修改這些鏈接,這個時候就需要我們這樣子做:
webView.loadDataWithBaseURL("example-app://example.co.uk/",
HTML_DATA, null, "UTF-8", null);

大概就是這些了,我們調試後是能夠成功捕獲到的。希望對大家有幫助

Ⅶ android 怎麼在webview中載入 js文件

String htmlCode =
下面是htmlCode中的值
<html>
<head>
<script><script type=\"text/javascript\" src= \"ww w .fo ok ii.c om/js/jquery.js\" /></script>
</head>
<body></body>
</html>
webview中用loadData(htmlCode); //webview載入html代碼
把這個jquery.js文件放到了assets文件夾下
src="file:///android_asset/xxx.js"
並且要用
String baseUrl = "file:///android_asset";
WV_View.loadDataWithBaseURL(baseUrl, strHtml, "text/html", "utf-8", null);

Ⅷ android loaddatawithbaseurl 和loarl的區別

在開發Android平台的互聯網應用時,經常會使用到WebView,好處主要有兩個,一是可以更改要展現的內容(包括樣式),二是可以實現部分功能的跨平台。

Android的WebView組件使用非常簡單,可以使用loadUrl()載入一個Url地址,也可以使用loadData()或 loadDataWithBaseURL()載入一段HTML代碼片段。loadUrl()的使用大家應該都沒有什麼問題,但是loadData()和 loadDataWithBaseURL()在使用上的差異可能有些人還不太清楚。
首先,從方法的定義來看:
public void loadData (String data, String mimeType, String encoding)
public void loadDataWithBaseURL (String baseUrl, String data, String mimeType, String encoding, String historyUrl)
loadDataWithBaseURL()比loadData()多兩個參數,可以指定HTML代碼片段中相關資源的相對根路徑,也可以指定歷史Url。兩個方法的其餘三個參數相同。

其次,兩個方法載入的HTML代碼片段有些不同,loadData()中的html data中不能包含'#', '%', '\', '?'四中特殊字元,這就為我們內嵌css等製造了些許麻煩,因為css中經常用'#', '%'等字元,需要如何處理呢?我們需要用UrlEncoder編碼為%23, %25, %27, %3f 。
/**
* Loads the given data into this WebView using a 'data' scheme URL.
* <p>
* Note that JavaScript's same origin policy means that script running in a
* page loaded using this method will be unable to access content loaded
* using any scheme other than 'data', including 'http(s)'. To avoid this
* restriction, use {@link
* #loadDataWithBaseURL(String,String,String,String,String)
* loadDataWithBaseURL()} with an appropriate base URL.
* <p>
* If the value of the encoding parameter is 'base64', then the data must
* be encoded as base64. Otherwise, the data must use ASCII encoding for
* octets inside the range of safe URL characters and use the standard %xx
* hex encoding of URLs for octets outside that range. For example,
* '#', '%', '\', '?' should be replaced by %23, %25, %27, %3f respectively.
* <p>
* The 'data' scheme URL formed by this method uses the default US-ASCII
* charset. If you need need to set a different charset, you should form a
* 'data' scheme URL which explicitly specifies a charset parameter in the
* mediatype portion of the URL and call {@link #loadUrl(String)} instead.
* Note that the charset obtained from the mediatype portion of a data URL
* always overrides that specified in the HTML or XML document itself.
*
* @param data a String of data in the given encoding
* @param mimeType the MIME type of the data, e.g. 'text/html'
* @param encoding the encoding of the data
*/
public void loadData(String data, String mimeType, String encoding) {
checkThread();
mProvider.loadData(data, mimeType, encoding);
}
/**
* Loads the given data into this WebView, using baseUrl as the base URL for
* the content. The base URL is used both to resolve relative URLs and when
* applying JavaScript's same origin policy. The historyUrl is used for the
* history entry.
* <p>
* Note that content specified in this way can access local device files
* (via 'file' scheme URLs) only if baseUrl specifies a scheme other than
* 'http', 'https', 'ftp', 'ftps', 'about' or 'javascript'.
* <p>
* If the base URL uses the data scheme, this method is equivalent to
* calling {@link #loadData(String,String,String) loadData()} and the
* historyUrl is ignored.
*
* @param baseUrl the URL to use as the page's base URL. If null defaults to
* 'about:blank'.
* @param data a String of data in the given encoding
* @param mimeType the MIMEType of the data, e.g. 'text/html'. If null,
* defaults to 'text/html'.
* @param encoding the encoding of the data
* @param historyUrl the URL to use as the history entry. If null defaults
* to 'about:blank'.
*/
public void loadDataWithBaseURL(String baseUrl, String data,
String mimeType, String encoding, String historyUrl) {
checkThread();
mProvider.loadDataWithBaseURL(baseUrl, data, mimeType, encoding, historyUrl);
}

Ⅸ android webview顯示html代碼 meta 怎麼寫

(1)使用loadData方法。
這種方法需要先將HTML內容進行編碼,否則顯示的中文會有亂碼。
編碼方法為:
Java代碼
private String fmtString(String str){
String notice = "";
try{
notice = URLEncoder.encode(str, "utf-8");
}catch(UnsupportedEncodingException ex){
}
return notice;
}
調用fmtString方法:
Java代碼
mWebView.loadData(fmtString(notice1), "text/html", "utf-8");

Ⅹ 如何解決Android WebView出現的亂碼問題

1、webView.loadUrl(); 直接顯示網頁內容(單獨顯示網路圖片),一般不會出現亂碼。 2、webView.loadData(data, "text/html", "UTF-8"); loadData主要被設計用來裝載URI格式的數據,它不能通過網路來載入內容。網上流傳的webview載入中文出現亂碼,多數是使用此方法。使用過程中主要有兩個問題: (1)loadData不能載入圖片內容,如果想載入圖片內容或者獲得更強大的Web支持建議使用更強大的loadDataWithBaseURL. (2) 許多實用loadData方法的朋友都遇到顯示亂碼的問題,那是因為編碼器設置錯誤導致的。我們知道String類型的數據主要是unicode編碼,而WebView一般為了節省資源使用的是UTF-8編碼,所以我們在loadData的時候要告訴方法怎樣轉碼。即要告訴它要將unicode編碼的內容轉成UTF-8編碼的內容。有些朋友雖然在loadData的時候設置了編碼方式,但是還是顯示亂碼,這是因為還需要為WebView的text編碼指定編碼方式。舉例如下: WebView wv = (WebView)findViewById(R.id.webview) ; wv.getSettings().setDefaultTextEncodingName(「UTF -8」) ; wv.loadData(content, 「text/html」, 「UTF-8」) ; 注意為gb2312或gbk (3).網頁說明編碼格式 <meta http-equiv="Content-Type" content="text/html;charset=gb2312"> 以上兩種方法是網上給的比較好的方法,但是我都試了下都沒有解決我的亂碼問題。 原來我是用LoadData方法來解析html的,但是據說這是官方的一個BUG,不能用來解析中文。所以繞其道而行之,採用loadDataWithBaseURL的方法,其中codeingType設置為utf-8就OK了。3、loadDataWithBaseURL如果單純顯示文字的話可以寫webView.loadDataWithBaseURL(null, string, "text/html", "utf-8", null); 如果要顯示圖片可以寫webView.loadDataWithBaseURL(baseUrl, string, "text/html", "utf-8", null); 其中baseUrl為你存儲照片的路徑,比如:

熱點內容
u3dandroid 發布:2025-03-11 03:22:41 瀏覽:356
ftp如何在網站上顯示圖片 發布:2025-03-11 03:17:41 瀏覽:929
不懂加工怎麼看數控車床配置 發布:2025-03-11 02:54:33 瀏覽:597
埋點系統存儲方案 發布:2025-03-11 02:41:20 瀏覽:443
編程要很久 發布:2025-03-11 02:41:10 瀏覽:196
筆記本電腦播放mp4時提醒伺服器運行失敗 發布:2025-03-11 02:40:32 瀏覽:441
吉利星瑞尊貴版配置有哪些 發布:2025-03-11 02:34:33 瀏覽:890
ecs中怎麼配置slb 發布:2025-03-11 02:33:17 瀏覽:719
vb圖片保存到資料庫 發布:2025-03-11 02:31:05 瀏覽:842
元件符號編譯器 發布:2025-03-11 02:30:12 瀏覽:74