2018. 6. 8. 21:50ㆍAndroid
1. app/src/main/res/layout/activity_main.xml 수정
화면을 구성하는 activity_main.xml에 웹페이지를 보여주는 WebView를 추가합니다.
10~14: TextView를 지우고 WebView를 추가합니다.
7: RelativeLayout의 padding을 0dp로 맞춰 WebView의 주변에 여백이 없도록 수정합니다.
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15 | <?xml version="1.0" encoding="utf-8"?> <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="http://schemas.android.com/tools" android:id="@+id/activity_main" android:layout_width="match_parent" android:layout_height="match_parent" android:padding="0dp" tools:context="net.zeany.myapplication.MainActivity"> <WebView android:id="@+id/activity_main_webview" android:layout_width="match_parent" android:layout_height="match_parent" android:fadingEdge="none" /> </RelativeLayout> |
2. app/src/main/java/net/zeany/myapplicaiton/MainActivity.java 수정
1) WebView 변수 생성 후 findViewById()로 activity_main.xml에서 생성한 WebView와 연결합니다.
2) WebSettings에 setJavaScriptEnabled(true) 해서 자바스크립트 실행 가능하도록 설정합니다. (기본은 false)
3) WebViewClient의 shouldOverrideUrlLoading() 메소드를 override해서 새 창으로 띄우지 않도록 설정합니다.
※ 아래 코드 추가 후 발생하는 import 에러는 Alt + Enter를 눌러서 해결하도록 합니다.
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24 | public class MainActivity extends AppCompatActivity { private WebView mWebView; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); mWebView = (WebView) findViewById(R.id.activity_main_webview); WebSettings webSettings = mWebView.getSettings(); webSettings.setJavaScriptEnabled(true); mWebView.setWebViewClient(new WebViewClient() { @Override public boolean shouldOverrideUrlLoading(WebView view, String url) { view.loadUrl(url); return true; } }); mWebView.loadUrl("http://zeany.tistory.com"); } } |
3. app/src/main/AndroidManifest.xml 수정
1) Title Bar를 없애기 위해 android:theme를 @style/Theme.AppCompat.NoActionBar 로 수정합니다.
2) 인터넷으로 연결되어야 하기 때문에 <uses-permission android:name="android.permission.INTERNET" /> 추가해서 앱에서 인터넷으로 연결할 수 있도록 합니다.
|
|
실행해보면 그럭저럭 동작하는 듯 하지만, 조금만 테스트 해봐도 아래와 같은 문제들이 있음을 알 수 있습니다.
1) Alert이나 Confirm과 같은 Popup이 전혀 보이지 않음
2) 안드로이드의 Back 버튼을 누르면 바로 앱이 종료됨 (이전 페이지가 있으면 그 곳으로 이동하는 것이 일반적인 기대)
3) 화면을 가로/세로 모드로 변환하면 다시 페이지를 로딩함
[출처: http://zeany.net/4]
'Android' 카테고리의 다른 글
개선된 로딩 화면 (Splash Screen) (0) | 2018.07.02 |
---|---|
웹뷰(2) (0) | 2018.06.08 |
안드로이드 캐시(Cache) 사용하기 (0) | 2017.01.12 |
XML 파서: XmlPullParser (0) | 2016.11.29 |
Android Google Chart 사용하기 (0) | 2016.11.25 |