안녕하세요?
하이브리드앱을 만들고 있는 초보 개발자입니다.
어플은 HTML5 + 폰갭 + jQuery Mobile로 만들고 있구요.
현재 60%정도 완성된 상태인데요..
테스트하던중 문제가 생겨서 이렇게 질문 남김니다.
제 앱에서는 onCreate시에 super.loadurl로 로컬에 있는 HTML을 읽어들입니다.
그리고 자바스크립트와 연결해주는 addJavascriptInterface를 사용하는데요..
갤럭시S3로 테스트할 때는 이상없이 되던것이 갤럭시노트 10.1에 연결하니 제대로 읽어들이지를 못하고 있습니다.
연결해주는 인자를 인식하지 못합니다.
아래부분이 저희소스이구요. 그 밑이 에러나는 소스코드입니다.
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
//첫 로딩시에 Intro영상을 띄웁니다.
super.setIntegerProperty("splashscreen", R.drawable.im_intro); //Intro호출
//전체화면 처리합니다.
getWindow().clearFlags(WindowManager.LayoutParams.FLAG_FORCE_NOT_FULLSCREEN); //Clean FLAG
requestWindowFeature(Window.FEATURE_NO_TITLE);
getWindow().setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN,
WindowManager.LayoutParams.FLAG_FULLSCREEN);
//WebView에 Index.html을 로딩합니다.
super.loadUrl("file:///android_asset/www/main.html", 3000);
//HTML의 Javascript와 연결합니다. (JSdbCon.java)
this.appView.getSettings().setJavaScriptEnabled(true);
this.appView.addJavascriptInterface(new JSdbCon(sql), "NPapi");
}
----------------------------------------------------------------------------------
에러코드
Uncaught ReferenceError: NPapi is not defined
file:///android_asset/www/main.html: Line 25 : Uncaught ReferenceError: NPapi is not defined
Uncaught ReferenceError: NPapi is not defined at file:///android_asset/www/main.html:25
위와같은 에러가 발생합니다. addJavaScriptInterface를 제대로 연결하지 못한듯한데요..
어떨때는 되고 어떨때는 되지 않습니다.
어떤문제일까요? 페이지를 다 로딩하지 않고 연결을 해서 오류가 난것일까요?
고수님들의 답변 부탁드리겠습니다.
정확히 짚으신것 같습니다.
저도 이런적이 있었는데.... 테스트 당시 와이파이로 잘넘어가던 것이 3G상에서는 오류를 뿜더군요.....
몇일을 고생해 본결과 페이지의 로딩이 끝나기 전에 자바 스크립트를 로드 했기 때문이엇습니다.
페이지 로딩이 끝난후 자바스크립트 로딩을 해주세요~~!^^