說一說自己粗心踩到的一個不算坑的坑:
項目是安卓webview嵌入SPA單頁應用頁面,涉及到JS調用原生安卓方法,但就是在調用安卓方法時死活一直報錯xxx NPObject一堆錯誤。
寫了一個測試頁面,調用一點問題沒有,這也讓安卓開發頭疼不已,這破問題查了一兩個小時,最終還是出在前端。
問題原因:
JS調用安卓方法多傳了一個undefined參數,本來這在JS中是一個小問題,但在橋接中就成了一個大問題了。
JS調用JS方法一般這么寫:
function a () {}; function b (o) { // 方式一 a(); // 方式二 a(o); };
上面兩種方式調用方法a其實沒多大區別,這取決於a方法要不要傳參!!
但是如果a方法是安卓定義的橋接方法,並且橋接方法不接收傳參,那么方式二調用就會報錯xxx NPObject!!!
作為一個小前端,沒經歷過java的嚴格類型語言洗禮,真的不知道同一個方法名,傳參和不傳參在java中是兩個方法。再次為自己的蠢,哭了...