본문 바로가기
개발자 커뮤니티에 오신 것을 환영합니다!

웹뷰 앱 개발 가이드

Android Studio에서 WebView를 활용한 하이브리드 앱 개발

웹페이지를 Android 앱으로 변환하는 방법을 소개합니다. WebView 컴포넌트를 활용하여 기존 웹사이트를 네이티브 앱처럼 배포할 수 있습니다.

1 WebView란?

WebView는 Android에서 웹 콘텐츠(HTML, JavaScript, CSS)를 표시하는 UI 컴포넌트입니다.

하이브리드 앱 웹 + 네이티브 결합
웹 기술 활용 HTML, CSS, JavaScript
앱 배포 Play Store 등록 가능
실시간 업데이트 앱 재배포 없이 웹 수정

2 프로젝트 설정

2.1 인터넷 권한 추가

AndroidManifest.xml 파일에 인터넷 접근 권한을 추가합니다.

AndroidManifest.xml
<uses-permission android:name="android.permission.INTERNET" />

3 레이아웃 설정

activity_main.xml
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout
    xmlns:android="http://schemas.android.com/apk/res/android"
    android:orientation="vertical"
    android:layout_width="match_parent"
    android:layout_height="match_parent">

    <WebView
        android:id="@+id/webView"
        android:layout_width="match_parent"
        android:layout_height="match_parent" />
</LinearLayout>

4 Java 코드 작성

MainActivity.java
import android.os.Bundle;
import android.webkit.WebView;
import android.webkit.WebViewClient;
import androidx.appcompat.app.AppCompatActivity;

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.setWebViewClient(new WebViewClient());
        webView.loadUrl("https://yourwebsite.com");
    }

    @Override
    public void onBackPressed() {
        if (webView.canGoBack()) {
            webView.goBack();
        } else {
            super.onBackPressed();
        }
    }
}

5 Kotlin 코드 작성

MainActivity.kt
import android.os.Bundle
import android.webkit.WebView
import android.webkit.WebViewClient
import androidx.appcompat.app.AppCompatActivity

class MainActivity : AppCompatActivity() {
    private lateinit var webView: WebView

    override fun onCreate(savedInstanceState: Bundle?) {
        super.onCreate(savedInstanceState)
        setContentView(R.layout.activity_main)

        webView = findViewById(R.id.webView)
        webView.settings.javaScriptEnabled = true
        webView.webViewClient = WebViewClient()
        webView.loadUrl("https://yourwebsite.com")
    }

    override fun onBackPressed() {
        if (webView.canGoBack()) {
            webView.goBack()
        } else {
            super.onBackPressed()
        }
    }
}

6 주요 설정 설명

설정설명
setJavaScriptEnabled(true)JavaScript 실행 허용
setWebViewClient()링크를 앱 내에서 열기
onBackPressed()뒤로가기 처리
loadUrl()웹페이지 로드

7 주의사항

  • 보안: XSS 등 보안 취약성 검토 필요
  • HTTPS: Android 9+ 기본 HTTPS만 허용
  • 성능: 복잡한 웹페이지는 성능 저하 가능
  • 오프라인: 인터넷 연결 필요

Copyright © program1472 | IT HUB. All rights reserved.