webView
AndroidManifest.xml
인터넷 권한이 필요하다. 아래 권한을 추가해준다.
1 | <uses-permission android:name="android.permission.INTERNET"/> | cs |
.xml에 추가
웹뷰 컴포넌트를 해당 레이아웃 xml에 포함시킨다.
1 2 3 4 | <WebView android:layout_width="match_parent" android:layout_height="match_parent" android:id="@+id/webView"></WebView> | cs |
MainActivity.java
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 | public class MainActivity extends AppCompatActivity { private WebView webView; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); webView = findViewById(R.id.webView); webView.getSettings().setJavaScriptEnabled(true); webView.loadUrl("접속할 주소"); webView.getSettings().setSupportZoom(true); webView.getSettings().setBuiltInZoomControls(true); webView.setWebChromeClient(new WebChromeClient(){ // 1 @Override public boolean onJsAlert(WebView view, String url, String message, JsResult result) { return super.onJsAlert(view, url, message, result); } }); webView.setWebViewClient(new WebViewClientClass()); } private class WebViewClientClass extends WebViewClient { @Override public boolean shouldOverrideUrlLoading(WebView view, String url) { view.loadUrl(url); return true; } } } | cs |
1 : WebViewClient()로 처음 설정했으나 얼랏창이 정상적으로 출력되지 않아 이를 위해 WebChromeClient를 설정해 JsAlert 메소드를 오버라이드했다.
options
아래는 옵션들이다.
1 2 3 4 5 6 7 8 9 | .setJavaScriptEnabled(true); // javascript를 실행할 수 있도록 설정 .setJavaScriptCanOpenWindowsAutomtically(true); // javascript가 window.open()을 사용할 수 있도록 설정 .setPluginState(WebSettings.PluginState.ON_DEMAND); // 플러그인을 사용할 수 있도록 설정 .setSupportMultipleWindows(true); // 여러개의 윈도우를 사용할 수 있도록 설정 .setSupportZoom(true); // 확대,축소 기능을 사용할 수 있도록 설정 .setBuiltInZoomControls(true); // 안드로이드에서 제공하는 줌 아이콘을 사용할 수 있도록 설정 .setLoadsImagesAutomatically(true); // 웹뷰가 앱에 등록되어 있는 이미지 리소스를 자동으로 로드하도록 설정 .setUseWideViewPort(true); // wide viewport를 사용하도록 설정 .setCacheMode(WebSettings.LOAD_NO_CACHE); // 웹뷰가 캐시를 사용하지 않도록 설정 | cs |