City At Night

[Android Studio]WebView를 사용하여 Web을 App처럼 사용하기 본문

Android Studio

[Android Studio]WebView를 사용하여 Web을 App처럼 사용하기

Wuny 2021. 1. 31. 00:19
728x90
반응형

APP에서 Web을 띄워 보여주는 방식입니다. 자신이 만든 웹이 있다면 띄워주고 그 위에 안드로이드 기능을 추가하면 더 좋겠죠?

하지만 사용자는 항상 인터넷이 연결되어 있어야 서비스를 받을 수 있다는 단점이 있습니다..뭐 요즘에는 인터넷이 안되는 곳이 없으니 단점이라고 보기에는 힘들죠..

예시로 네이버 웹 주소를 가져와 앱에 네이버 웹을  올려보도록 하겠습니다.

<activity_main.xml>

<?xml version="1.0" encoding="utf-8"?>
<androidx.constraintlayout.widget.ConstraintLayout 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=".MainActivity">

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

</androidx.constraintlayout.widget.ConstraintLayout>

레이아웃에 그냥 WebView를 끌어다 놓으시기만 하면 됩니다.

<MainActivity.java>

public class MainActivity extends AppCompatActivity {
    WebView webView;
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);

        webView = findViewById(R.id.webView);
        WebSettings webSettings = webView.getSettings();
        webSettings.setJavaScriptEnabled(true); // allow the js

        getWindow().addFlags(WindowManager.LayoutParams.FLAG_KEEP_SCREEN_ON); //화면이 계속 켜짐
        setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_FULL_USER);

        webView.setWebViewClient(new WebViewClient());
        webView.loadUrl("https://www.naver.com");

         ActionBar actionBar = getSupportActionBar();
         actionBar.hide();
    }
}

저는 액션바(타이틀바?)를 없애주고 전체화면으로 보여주기 위해서 마지막에 actionBar.hide()를 해주었습니다.

그 다음 menifests.xml에서 인터넷 권한을 열어줘야합니다.

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

 

 

액션바를 없애니 전체모드로 보여 네이버앱처럼 구동이 되는걸 볼 수 있습니다. 

혹여나 ERR_NAME_RESOLVED 라는 에러가 나오시면 

manifest.xml의 <application>태그안에 android:usesCleartextTraffic="true" 를 추가해주시면 됩니다.

728x90
반응형
Comments