일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
Tags
- 해커톤
- rl
- CSIP
- Qwik Start
- GDG Campus
- Community Day
- 뉴비톤
- seq2seq
- Open Hack
- Ground Truth
- entity
- aws
- Conference
- 오픈소스해커톤
- re:Invent
- Tensorflow 2.0
- 구글스타트업캠퍼스
- kakao
- Speech
- OPENHACK
- ainize
- SageMaker
- gcp
- 스터디 잼
- BOAZ
- SW중심대학
- Backend.AI
- 코딩테스트
- API
- 머신러닝
Archives
- Today
- Total
pizzaplanet
안드로이드 웹뷰 띄우기 본문
Android Webview
안드로이드에서 웹뷰를 띄워보자.
우선 아래와 같이 activity_main.xml 에서 WebView를 추가해주자. Design 모드에서 WebView를 드래그 한 후 우측 창에서 속성들을 조정 해도 된다.
코드가 편하다면 아래와 같이 하면 된다.
<activity_main.xml>
1 2 3 4 5 6 7 8 9 | <android.support.constraint.ConstraintLayout xmlns:android="http://schemas.android.com/apk/res/android" <!--웹뷰추가 --> <WebView android:id="@+id/activity_main_webview" android:layout_width="match_parent" android:layout_height="match_parent" android:padding="0dp" tools:layout_editor_absoluteX="8dp" tools:layout_editor_absoluteY="8dp" /> | cs |
<AndroidManifest.xml>
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 | <manifest xmlns:android="http://schemas.android.com/apk/res/android" package="com.example.ghseh.myapplication"> <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" android:label="@string/app_name" android:configChanges="orientation|keyboardHidden|screenSize"><!---가로세로 변환시 리로딩 방지--> <intent-filter> <action android:name="android.intent.action.MAIN" /> <category android:name="android.intent.category.LAUNCHER" /> </intent-filter> </activity> </application> <uses-permission android:name="android.permission.INTERNET" /><!---인터넷 권한 부여--> </manifest> | cs |
13라인: 가로세로 모드 전환하면 화면을 다시 리로드 해버린다. 이를 방지하자.
21라인: 권한부여 하지 않으면 net::ERR_CACHE_MISS 에러가 뜨니 추가해주자
<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 | public class MainActivity extends AppCompatActivity { private WebView mwv;//Mobile Web View @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); mwv=(WebView)findViewById(R.id.activity_main_webview); WebSettings mws=mwv.getSettings();//Mobile Web Setting mws.setJavaScriptEnabled(true);//자바스크립트 허용 mws.setLoadWithOverviewMode(true);//컨텐츠가 웹뷰보다 클 경우 스크린 크기에 맞게 조정 mwv.setWebViewClient(new WebViewClient(){ @Override public boolean shouldOverrideUrlLoading(WebView view, String url) { view.loadUrl(url); return true; } }); mwv.loadUrl("http://pizzaplanet.tistory.com/"); } // 추가전에 뒤로가기 이벤트 호출시 홈으로 돌아갔으나, 이젠 일반적인 뒤로가기 기능 활성화 @Override public boolean onKeyDown(int keyCode, KeyEvent event) { if (keyCode == KeyEvent.KEYCODE_BACK) { if (mwv.canGoBack()) { mwv.goBack(); return false; } } return super.onKeyDown(keyCode, event); } } | cs |
11라인: 웹뷰 안에서 자바스크립트 허용
12라인: 컨텐츠가 웹뷰보다 클 때에 스크린 크기에 맞춰서 조정해준다.
26라인: 뒤로가기 이벤트 호출시 홈으로 돌아가버린다. 예를들어 웹뷰로 네이버를 띄운 후 기사들을 보다가 뒤로가면 전 페이지로 가는데 홈으로 돌아가버리는 것. 우리가 원하는 전페이지로 돌아가는 것이므로 이 기능을 부여해준 것이다.
참고
'Android' 카테고리의 다른 글
Android Material Icons (0) | 2018.05.06 |
---|---|
안드로이드 @Override 오버라이드 (0) | 2018.04.26 |
안드로이드 타이틀바 제거하기 (0) | 2018.04.26 |
안드로이드 스튜디오 실제 디바이스 연결 (0) | 2018.04.21 |
Comments