Translate

[Android][Webview] Bridge 연결된 메소드가 실행되지 않는문제 (Uncaught TypeError: Object [object Object] has no method)




잘 구동되던 Android App 이 어느날부터 정상적으로 작동하지 않는 문제가 발생을 했다.
App 에서는 따로 수정하여 배포하지 않았으니 서버쪽에서 문제가 있는 것으로 생각을 했는데
예상외로 App의 문제였다.



Webview 의 bridge 로 연결을 시켜놓은 메소드가 없어서 실행이 안된다는 로그가 보였다.

로그내용
Uncaught TypeError: Object [object Object] has no method 메소드명(브릿지 시켜놓은)

문제를 찾아보니 Android 4.x 버전에서 API 변화가 있었나 싶다.
(그렇다고 잘 돌아가는 앱이 비정상적으로 작동하다니.. 버럭!!)



해결방법

class JsObject {
    @JavascriptInterface   <= Bridge 연결한 메소드위에 해당 애노테이션 추가
    public String toString() { return "injectedObject"; }
 }
 webView.addJavascriptInterface(new JsObject(), "injectedObject");
 webView.loadData("", "text/html", null);
 webView.loadUrl("javascript:alert(injectedObject.toString())");



개발자페이지 참고자료: 링크
문제해결 원본자료: 링크



댓글