Java/Android
android 함수를 javascript 함수로 셋팅
innocent_k
2015. 4. 7. 11:19
하이브리드 앱을 하게 되면 웹 기반으로 만든다.
그럼 안드로이드에 접근하기 위한 가교 역할을 하는 인터페이스가 필요한데
그걸 @JavascriptInterface 한줄로 끝내 버린다. 쉽네?
클래스 함수에 상기 annotation만 달면 스크립트 함수로 쓰겠다는 선언은 끝!
물론 webview 불러올때 javascript에서 어떤 이름으로 쓰겠다고 하는 셋팅은 해야한다.
아래는 javascript에서 쓸 클래스
AppJavascriptBridge.java
public final class AppJavascriptBridge { private Context context; public AppJavascriptBridge(Context context) { this.context = context; } @JavascriptInterface public String getRegId() { String regId = GCMRegistrar.getRegistrationId(context); return regId; } @JavascriptInterface public String getDeviceInfo() { String deviceInfo = VERSION.RELEASE + ";" + DEVICE + ";" + MODEL + ";" + PRODUCT + ";" + MANUFACTURER; return deviceInfo; } }