橋接:JS調用安卓方法報錯Uncaught Error: Error calling method on NPObject


說一說自己粗心踩到的一個不算坑的坑:

項目是安卓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中是兩個方法。再次為自己的蠢,哭了...

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM