1. 程式人生 > >android webview java呼叫js方法沒反應

android webview java呼叫js方法沒反應

之前公司寫了一個功能,需要呼叫H5介面,並且在H5介面裡面呼叫本地方法獲取照片,通過webview.loadUrl()方法再將照片流傳給伺服器

本身呢,這個功能不是我做的,我對這塊使用也並不是特別清楚,測試真是個好測試,公司的測試機不夠,他們就給爸媽重新買了新的手機,把他們老得掉渣的手機拿出來測試,真可謂與我們開發不死不休哇!

現在說一下她們測出來的問題:別的上傳照片功能一切正常,但唯直接將照片流放到

webview.loadUrl("javascript:cameraCallback('"+PictureUtil.bitmapToString(outImgFile.getPath())+"')");(這種寫法在三星note 3 4.3版本手機可能導致圖片流太大呼叫不成功,但小米手機上大部分都成功,我一個vivo手機4.4.4的手機上也可以)
這裡的
PictureUtil.bitmapToString(outImgFile.getPath())

是壓縮圖片的方法。

呼叫了上面的js方法後怎麼都沒反應,於是我查找了一個下午的時間,依然無果。。。

於是我將裡面的圖片流換成了“abc”字串,咦!神奇了,調通了!這是什麼鬼,於是我猜是圖片流太大導致的,那太大也沒辦法解決啊,怎麼辦呢,想了半天,把圖片字條串流放到jsonObject裡面傳。果然成功了!

JSONObject json = new JSONObject();
try {
    json.put("img",PictureUtil.bitmapToString(outImgFile
.getPath())); } catch (JSONException e) { e.printStackTrace(); } webview.loadUrl("javascript:cameraCallback('"+json+"')");

(上面方法,解決了我半天的難題!並給自己發現這個問題點個贊!)

哎~一個下午的時間 ,我竟然沒發現竟然是這個原因導致的!傷了個心!接手別的同事的程式碼出現的種種問題真是讓人蛋疼,不知道你們有沒有遇到過,哈哈,現在想想,解決了一莊難題,心情好多了!寫下來就是下次自己再看看,說不定能給自己點提醒。