[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())");
개발자페이지 참고자료: 링크
문제해결 원본자료: 링크
댓글
댓글 쓰기