안드로이드 스튜디오에서 코틀린을 이용하여 웹뷰를 띄워보자.
네이버를 띄워볼 것이며 그 과정이 절대 복잡하지 않다고 약속한다.
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() }
}
}
여기까지하고 한번 실행해보면 아래와 같이 화면이 잘 나온다는 것을 알 수 있다.
'Android > TIL & 정보' 카테고리의 다른 글
[Kotlin][안드로이드]웹뷰-네이티브 간 통신하기. (0) | 2021.10.05 |
---|---|
Kotlin 시작하기 - Hello World 띄우기 (0) | 2021.10.01 |
최근댓글