안드로이드 스튜디오에서 코틀린을 이용하여 웹뷰를 띄워보자. 

네이버를 띄워볼 것이며 그 과정이 절대 복잡하지 않다고 약속한다.

 

activity_main.xml 수정

가장 먼저 activity_main.xml 을 수정하여 WebView를 심어준다

 

 ...
    tools:context=".MainActivity">

    <WebView
        android:id="@+id/webview"
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        app:layout_constraintBottom_toBottomOf="parent"
        app:layout_constraintLeft_toLeftOf="parent"
        app:layout_constraintRight_toRightOf="parent"
        app:layout_constraintTop_toTopOf="parent" />

</androidx.constraintlayout.widget.ConstraintLayout>

 

 

앱바 없애기

res/values/styles.xml에 아래 코드를 추가한다.

만약 styles.xml이 없다면 themes.xml을 수정하면 된다.

 

<item name="windowNoTitle">true</item>

 

이것을 추가해줌으로써 화면 상단의 앱바를 없앰으로써 더이상 웹뷰를 가리지 않도록 한다.

앱바를 살려두고 싶다면 해당 코드를 빼면 그만이다.

 

AndroidManifest.xml 수정.

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

를 추가하고, appilcation 태그 내부에

android:usesCleartextTraffic="true"

를 추가한다. 아래는 그 예제이다.

 

<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
    package="com.kchoi.firstkotlin">

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

    <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/Theme.Firstkotlin"
        android:usesCleartextTraffic="true"> // 여기
        <activity
            android:name=".MainActivity"
            android:exported="true">
            <intent-filter>
                <action android:name="android.intent.action.MAIN" />

                <category android:name="android.intent.category.LAUNCHER" />
            </intent-filter>
        </activity>

        <service

 

인터넷 permission은 말그대로 인터넷 사용의 허가를, 

cleartext의 경우 http 통신을 허가한다. 

 

코틀린 파일 수정

마지막으로 onBackPressed 메서드를 우리의 코틀린 파일에 추가해주자. 

또, onCreate 부분 안에 webview.apply 부분 이하를 적어줌으로써

웹뷰를 사용할 수 있게 만들고 원하는 웹뷰 창이 뜰 수 있도록 주소를 정해준다.

import android.webkit.WebViewClient
import kotlinx.android.synthetic.main.activity_main.*

class MainActivity : AppCompatActivity() {
    override fun onCreate(savedInstanceState: Bundle?) {
        super.onCreate(savedInstanceState)
        setContentView(R.layout.activity_main)
        
        webview.apply {
            webViewClient = WebViewClient()
            settings.javaScriptEnabled = true
        }

        webview.loadUrl("https://m.naver.com")

    }
    
    override fun onBackPressed() {
        if (webview.canGoBack()) { webview.goBack() }
        else { finish() }
    }
}

 

여기까지하고 한번 실행해보면 아래와 같이 화면이 잘 나온다는 것을 알 수 있다.

 

  • 네이버 블러그 공유하기
  • 네이버 밴드에 공유하기
  • 페이스북 공유하기
  • 카카오스토리 공유하기
// custom