@Override
public boolean shouldOverrideUrlLoading(WebView view, String url) {
((CustomWebView) view).resetLoadedUrl();
if(url != null ){
if(url.contains("?method=search¶meter=")){//比如要判斷url中是否包括"?method=search¶meter="字符,就截取獲取"?method=search¶meter="后面的文字
int length = "?method=search¶meter=".length();
int index = url.indexOf("?method=search¶meter=");
url = URLDecoder.decode(url);//數(shù)據(jù)轉(zhuǎn)碼
String keyWord = url.substring(index+length);//截取操作
Bundle bundle = new Bundle();
bundle.putString("categoryName", keyWord);
mMainActivity.showActivity(activity, XX.class,bundle);//把截取到的數(shù)據(jù)傳入到指定頁面中
return true;
}else
//TODO
return true;
}
}
return false;
}
開始沒有加入上面紅色文字,結(jié)果截取到的字符是一串由%和字母等組成的一長串字符,并非我想要的中文漢字,后來加入紅色文字,就獲取到了想要的字符,如“聯(lián)想電腦”。
今天查了下java的api,了解了一下URLDecoder這個類:
HTML 格式解碼的實用工具類。該類包含了將 String 從 application/x-www-form-urlencoded MIME 格式解碼的靜態(tài)方法。
該轉(zhuǎn)換過程正好與 URLEncoder 類使用的過程相反。假定已編碼的字符串中的所有字符為下列之一:"a" 到 "z"、"A" 到 "Z"、"0" 到 "9" 和 "-"、"_"、"." 以及 "*"。允許有 "%" 字符,但是將它解釋為特殊轉(zhuǎn)義序列的開始。
轉(zhuǎn)換中使用以下規(guī)則:
該解碼器處理非法字符串有兩種可能的方法。一種方法是不管該非法字符,另一種方法是拋出 IllegalArgumentException 異常。解碼器具體采用哪種方法取決于實現(xiàn)?,F(xiàn)在主要用的方法是:
decode(String s, String enc) 使用指定的編碼機制對 application/x-www-form-urlencoded 字符串解碼。解碼后才能獲取到我們想要的正確數(shù)據(jù)。
與URLDecoder的類是URLEncoder:該類包含了將 String 轉(zhuǎn)換為 application/x-www-form-urlencoded MIME 格式。主要方法:encode(String s, String enc) 使用指定的編碼機制將字符串轉(zhuǎn)換為 application/x-www-form-urlencoded 格式。
下次遇到這樣的問題就知道怎么解決了。
版權(quán)聲明:本文為博主原創(chuàng)文章,未經(jīng)博主允許不得轉(zhuǎn)載。
聲明:本網(wǎng)頁內(nèi)容旨在傳播知識,若有侵權(quán)等問題請及時與本網(wǎng)聯(lián)系,我們將在第一時間刪除處理。TEL:177 7030 7066 E-MAIL:11247931@qq.com