在項目中遇到一個問題,在webveiw和原生之間進行傳值的時候,出現(xiàn)了一些encode的小問題。看起來很簡單的問題,實際上卻存在不小的坑。

  首先說一下目前項目的結(jié)構(gòu),在一個activity中,webview和原生之間有多種交互。

  如圖所示

電腦培訓(xùn),計算機培訓(xùn),平面設(shè)計培訓(xùn),網(wǎng)頁設(shè)計培訓(xùn),美工培訓(xùn),Web培訓(xùn),Web前端開發(fā)培訓(xùn)

在原生調(diào)用webview方法,這種協(xié)議已經(jīng)非常常用了,直接調(diào)用loadJS();但是自定義協(xié)議這個過程,使用的攔截跳轉(zhuǎn)的方式,按照預(yù)定的協(xié)議來解析數(shù)據(jù),這里面就有一些情況,比如數(shù)據(jù)中出現(xiàn)了中文,webview會encode這部分內(nèi)容,這就要求我們對攔截以后的內(nèi)容進行decode。

見下方代碼:

電腦培訓(xùn),計算機培訓(xùn),平面設(shè)計培訓(xùn),網(wǎng)頁設(shè)計培訓(xùn),美工培訓(xùn),Web培訓(xùn),Web前端開發(fā)培訓(xùn)

1   private String decodeUrl(String url) {2             try {3                 return URLDecoder.decode(url, "utf-8");4             }&