1. 程式人生 > >webview圖片上傳以及中文路徑解決

webview圖片上傳以及中文路徑解決

最近在一個專案中使用到了webview的圖片上傳功能、我天真的以為只要服務端給一個圖片上傳介面、我們將圖片的資料進行上傳就行了,結果需求並不是這樣、而是直接讓我們進行圖片的上傳。這裡就需要對webview的功能進行深層次的瞭解了。
這三個方法主要是在webview中針對h5裡面的input file標籤做的處理。按照需求、點選上傳圖片按鈕將彈出對話方塊
對、就是這幅鳥模樣,o(︶︿︶)o 唉。之前使用的intent直接開啟對話方塊,但產品說、我們需要有兩個選擇、一個是拍照、一個是從相簿獲取、如上圖。但是、我說了、每個手機裡面從相簿選擇圖片的時候都會有一個開啟相機的按鈕。沒辦法,產品就是老大、不想跟這樣的人說太多。好了、、閒話了那麼多。迴歸正題。 1。這裡我就自定義了一個對話方塊。 在對話方塊初始化中進行設定相對應的路徑和按鈕的事件監聽
2。最後得到了對應的圖片並返回給Activity進行顯示
這裡看起來是不是很多、別急、我們慢慢來、一步一步看。。 首先、這裡我們在webview中的openFileChooser中可以得到一個回撥監聽ValueCallBack,這個監聽可以讓我們在acitivty的回撥中進行判斷。 第一個是拍照返回的圖片路徑,得到圖片後、在之前我們早已設定的圖片路徑中儲存圖片,最後取的路徑並設定給mIploadMesaage。 第二個就是我們需要從相簿中或者檔案選擇的方式進行選擇圖片,

這裡會返回一個選擇後的圖片路徑類似於file://stroing/emlute/0/xxx/xxx.jpg或者是content://xxx/xxx/xxx.jpg 因為這裡也需要包含檔案選擇以及相簿中照片。 然後最後的一個坑來了,webview上傳圖片時、檔案路徑不能包含中文字元或者中文轉碼字元。比如:file://xxx/xxx/檔案/a.jpg or URLencode後的字元。這就鬱悶了。 我也在網上找了很久、有的人說使用iso-8859-1進行編碼,也試過、沒任何效果。最後問了一個Andorid開發群:257157414中的一個人才得知、只能使用臨時檔案的方式將路徑進行偷樑換柱。 我的意思就是將帶有中文的路徑進行轉換成英文路徑,這個時候webview才會識別上傳圖片的路徑。我的具體做法截圖中已有。請詳看、如有問題、2273681354本人QQ 這是我個人所遇到坑,還望大神們賜教。如有問題,還請見諒。小白程式設計師————