在項(xiàng)目中遇到一個(gè)問題,在webveiw和原生之間進(jìn)行傳值的時(shí)候,出現(xiàn)了一些encode的小問題??雌饋砗芎唵蔚膯栴},實(shí)際上卻存在不小的坑。
首先說一下目前項(xiàng)目的結(jié)構(gòu),在一個(gè)activity中,webview和原生之間有多種交互。
如圖所示
在原生調(diào)用webview方法,這種協(xié)議已經(jīng)非常常用了,直接調(diào)用loadJS();但是自定義協(xié)議這個(gè)過程,使用的攔截跳轉(zhuǎn)的方式,按照預(yù)定的協(xié)議來解析數(shù)據(jù),這里面就有一些情況,比如數(shù)據(jù)中出現(xiàn)了中文,webview會(huì)encode這部分內(nèi)容,這就要求我們對攔截以后的內(nèi)容進(jìn)行decode。
見下方代碼:
1 private String decodeUrl(String url) {2 try {3 return URLDecoder.decode(url, "utf-8");4 }&