-
[Android Studio] 안드로이드 하이브리드앱 만들기 2: 웹뷰 추가하기개발 프로세스/Back-end 2021. 8. 24. 01:44
AWS를 통해 구현한 웹을 안드로이드 앱 안으로 불러올 것이다. AWS의 IP주소를 웹뷰로 추가해본다.
1. AndroidManifest.xml에 인터넷 사용권한을 준다.
<uses-permission android:name="android.permission.INTERNET" />
2. AndroidManifest.xml에 MainActivity에서 앱의 타이틀 바를 없애고, 화면을 세로로 고정하기 위해서 다음 코드를 추가한다.
android:screenOrientation="portrait" android:theme="@style/Theme.AppCompat.NoActionBar"
3. activity_main.xml에 웹뷰를 아래와 같이 추가한다.
<WebView android:id="@+id/activity_main_webview" android:layout_width="match_parent" android:layout_height="match_parent" android:fadingEdge="none" />
4. activity_main.xml에 접속이 원활하지 않을 경우를 대비하여 텍스트뷰도 추가해준다.
<TextView android:id="@+id/net_error_view" android:layout_width="match_parent" android:layout_height="match_parent" android:fadingEdge="none" android:gravity="center" android:text="접속이 원활하지 않습니다" android:visibility="gone"/>
5. java/MainActivity 자바 클래스를 수정한다.
package com.example.carbondiet; import androidx.appcompat.app.AlertDialog; import androidx.appcompat.app.AppCompatActivity; import android.content.DialogInterface; import android.os.Bundle; import android.view.KeyEvent; import android.view.View; import android.webkit.JsResult; import android.webkit.WebChromeClient; import android.webkit.WebSettings; import android.webkit.WebView; import android.webkit.WebViewClient; import android.widget.TextView; public class MainActivity extends AppCompatActivity { WebView mWebView; TextView errorView; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); //에러메시지 내보낼 텍스트뷰 errorView = (TextView) findViewById(R.id.net_error_view); //웹페이지 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; } //네트워크연결에러 @Override public void onReceivedError(WebView view, int errorCode,String description, String failingUrl) { switch(errorCode) { case ERROR_AUTHENTICATION: break; // 서버에서 사용자 인증 실패 case ERROR_BAD_URL: break; // 잘못된 URL case ERROR_CONNECT: break; // 서버로 연결 실패 case ERROR_FAILED_SSL_HANDSHAKE: break; // SSL handshake 수행 실패 case ERROR_FILE: break; // 일반 파일 오류 case ERROR_FILE_NOT_FOUND: break; // 파일을 찾을 수 없습니다 case ERROR_HOST_LOOKUP: break; // 서버 또는 프록시 호스트 이름 조회 실패 case ERROR_IO: break; // 서버에서 읽거나 서버로 쓰기 실패 case ERROR_PROXY_AUTHENTICATION: break; // 프록시에서 사용자 인증 실패 case ERROR_REDIRECT_LOOP: break; // 너무 많은 리디렉션 case ERROR_TIMEOUT: break; // 연결 시간 초과 case ERROR_TOO_MANY_REQUESTS: break; // 페이지 로드중 너무 많은 요청 발생 case ERROR_UNKNOWN: break; // 일반 오류 case ERROR_UNSUPPORTED_AUTH_SCHEME: break; // 지원되지 않는 인증 체계 case ERROR_UNSUPPORTED_SCHEME: break; // URI가 지원되지 않는 방식 } super.onReceivedError(view, errorCode, description, failingUrl); mWebView.setVisibility(View.GONE); errorView.setVisibility(View.VISIBLE); } }); // 연결할 url을 적는다 mWebView.loadUrl("http://3.34.253.8/"); } }
< 참고 >
https://playgroundblog.tistory.com/334
웹뷰추가하기 - 안드로이드 모바일웹으로 하이브리드앱 만들기 5
모바일웹 사이트가 있고 특별한 기능이 없다면 많은 시간과 돈을 들여서 네거티브 앱을 만들 필요가 없습니다. 안드로이드의 웹뷰 기능을 이용하여 모바일웹을 안드로이드 앱안으로 불러오면
blog.work6.kr
'개발 프로세스 > Back-end' 카테고리의 다른 글
[Android Studio] 안드로이드 하이브리드앱 만들기 4: 뒤로 버튼 눌렀을 때 동작 처리 (0) 2021.08.24 [Android Studio] 안드로이드 하이브리드앱 만들기 3: 웹뷰 자바스크립트 동작 처리하기 (0) 2021.08.24 [Android Studio] 안드로이드 하이브리드앱 만들기 1: 프로젝트 생성하기 (0) 2021.08.24 [Python] 반복문 for문: 반복 범위를 지정하는 다양한 방법 (0) 2021.07.15 [Python] 리스트의 메모리 관리 방식 , == 연산자, is 연산 (0) 2021.07.15