반응형
참고문서 => https://developer.android.com/guide/webapps/webview#EnablingJavaScript
WebView에서 웹 앱 빌드 | Android 개발자 | Android Developers
WebView에서 웹 앱 빌드 웹 애플리케이션 또는 웹페이지만 클라이언트 애플리케이션의 일부로 제공하려는 경우 WebView를 사용하면 됩니다. WebView 클래스는 Android의 View 클래스의 확장으로, 웹페이
developer.android.com
public class MyWebView extends WebView {
private MainActivity mActivity;
private WebView webView;
public MyWebView(MainActivity activity) {
super(activity);
mActivity = activity;
this.webView = mActivity.findViewById(R.id.webView);
setWebSetting();
}
/* 웹 세팅 작업 */
public void setWebSetting(){
this.webView.getSettings().setJavaScriptEnabled(true);
this.webView.getSettings().setJavaScriptCanOpenWindowsAutomatically(true);
this.webView.getSettings().setUseWideViewPort(true);
this.webView.getSettings().setSupportMultipleWindows(true);
/* local setting */
this.webView.getSettings().setAllowFileAccess(true);
this.webView.getSettings().setAllowContentAccess(true);
//webView.loadUrl("file:///android_asset/test.html");*/
/* redirect 할 때 브라우저 열리는 것 방지 */
webView.setWebViewClient(new WebViewClient());
webView.setWebChromeClient(new WebChromeClient());
/* url */
webView.loadUrl("http://ec2-15-165-243-69.ap-northeast-2.compute.amazonaws.com:8080");
/* javascript interface 사용 */
webView.addJavascriptInterface(new WebAppInterface(mActivity), "AndroidClient");
}
}
public class WebAppInterface {
Context mContext;
public WebAppInterface(Context c) {
mContext = c;
}
@JavascriptInterface
public void goBack() {
Log.d("test ", "goBack: clicked ################");
}
}
웹에서 뭐 doucment.querySelector('#id').addEventListener('click',()=>{
AndroidClient.goBack();
})
이런 코드가 있으면 자바스크립트인터페이스 저 코드를 탄다.
반응형
'안드로이드' 카테고리의 다른 글
| Android ExoPlayer (0) | 2022.04.08 |
|---|---|
| android layout.xml include (0) | 2022.03.24 |
| 안드로이드 버튼들 중 배경색 있는거 혹은 active 된거 체크 (0) | 2022.03.23 |
| 안드로이드 배경색 변경,배경 삭제,텍스트 컬러 변경 (0) | 2022.03.23 |
| 안드로이드 junit test / android retrofit junit test (0) | 2022.03.07 |
댓글