[안드로이드] 간단하게 웹뷰 구현
간다하게 안드로이드의 웹뷰를 구현해 보도록 하자
1. 메인 액티비티 소스 (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 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 | package com.pois.mtrs_test; import android.os.Bundle; import android.support.v7.app.AppCompatActivity; import android.util.Log; import android.view.KeyEvent; import android.webkit.WebChromeClient; import android.webkit.WebView; import android.webkit.WebViewClient; import static com.pois.mtrs_test.R.id.webView; public class MainActivity extends AppCompatActivity { private WebView mWebView; private String myUrl = "file:///android_asset"; // 접속 URL (내장HTML의 경우 왼쪽과 같이 쓰고 아니면 걍 URL) @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); // 웹뷰 셋팅팅 mWebView = (WebView) findViewById(webView); mWebView.getSettings().setJavaScriptEnabled(true); //mWebView.loadUrl("http://www.pois.co.kr/mobile/login.do"); mWebView.loadUrl(myUrl + "/html/test.html"); // 접속 URL mWebView.setWebChromeClient(new WebChromeClient()); mWebView.setWebViewClient(new WebViewClientClass()); } @Override public boolean onKeyDown(int keyCode, KeyEvent event) { if ((keyCode == KeyEvent.KEYCODE_BACK) && mWebView.canGoBack()) { mWebView.goBack(); return true; } return super.onKeyDown(keyCode, event); } private class WebViewClientClass extends WebViewClient { @Override public boolean shouldOverrideUrlLoading(WebView view, String url) { Log.d("check URL",url); view.loadUrl(url); return true; } } } | cs |
14번 라인의 myurl은 http를 포함한 도메인 주소를 넣으면 된다. 나중에 편하게 쓸일 있을까 해서 걍 변수 처리 한것
23번 라인은 자바스크립트 허용 유무에 대한 것
27번은 웹뷰에 크롬을 사용한다고 하는 건데 저거 안하고 그냥 웹뷰만 쓰면
alert같은 알림창이 뜨지 않는다.
28번 라인에서 셋웹뷰를 한것은
39번부터 시작하는 클래스를 사용하는데
저거 안하면 html 내부에서 다른 페이지로 이동을 할 수가 없다. 그떄그떄 해당 url을 웹뷰에 셋팅해주는 역할을 한다.
2. AndroidManifest.xml 설정 인터넷 퍼미션 추가
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 | <?xml version="1.0" encoding="utf-8"?> <manifest xmlns:android="http://schemas.android.com/apk/res/android" package="com.xxx.xxx"> <uses-permission android:name="android.permission.INTERNET"></uses-permission> <application android:allowBackup="true" android:icon="@mipmap/ic_launcher" android:label="@string/app_name" android:roundIcon="@mipmap/ic_launcher_round" android:supportsRtl="true" android:theme="@style/AppTheme"> <activity android:name=".MainActivity"> <intent-filter> <action android:name="android.intent.action.MAIN" /> <category android:name="android.intent.category.LAUNCHER" /> </intent-filter> </activity> </application> </manifest> | cs |
5번 라인의 인터넷 퍼미션을 추가해줘야 해당 앱에서 인터넷에 접속할수 있다.
간단하게 앱에서 인터넷 사용할 권한을 주는 것이다.
3. layout
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 | <?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:app="http://schemas.android.com/apk/res-auto" xmlns:tools="http://schemas.android.com/tools" android:layout_width="match_parent" android:layout_height="match_parent" tools:context="com.xxx.xxxx.MainActivity"> <WebView android:layout_width="match_parent" android:layout_height="match_parent" android:id="@+id/webView" > </WebView> </LinearLayout> | cs |
레이아웃 구조는 이렇게 해주자
웹뷰는 그냥 꽉차게 보여줄거니까 매치 패런트로 해놓는다.
.
'Yame Programmer > Android' 카테고리의 다른 글
[안드로이드] androidBridge they will not be visible in API 17 오류 해결 방법 (0) | 2017.08.03 |
---|---|
[안드로이드] 인터넷 연결상태 확인하는 방법 (1) | 2017.08.03 |
[안드로이드] FCM 화면 깨우기 화면 켜지게 하는 방법 (11) | 2017.07.12 |
[안드로이드] FCM 백그라운드에서 진동 오도록 하는 방법 (9) | 2017.07.12 |
[안드로이드] FCM 토큰 저장방법 개별 보내는 방법 SharedPreferences 사용 (1) | 2017.07.10 |