반응형
Notice
Recent Posts
Link
«   2024/12   »
1 2 3 4 5 6 7
8 9 10 11 12 13 14
15 16 17 18 19 20 21
22 23 24 25 26 27 28
29 30 31
Archives
Today
Total
관리 메뉴

500error

[android, kotlin] 웹뷰 알아보기 본문

안드로이드/코틀린

[android, kotlin] 웹뷰 알아보기

Internal Server Error 2024. 10. 19. 18:01
반응형

내가 개발하면서 요청사항이 들어왔다. 리스트로 뽑은 정보들을 가져다가 세부사항을 각 항목을 클릭시 웹뷰로 페이지를 넘어가게 만들라는 것이었다(처음 개발할때 말해주시지)

 

그래서 웹뷰를 만들어 보았다


일단 androidmanifest에 권한 적용을 해주어야 한다.

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

이 코드는 인터넷을 허용해주는 코드이다

그리고 androidmanifest에

<activity android:name=".WebViewActivity"
android:exported="true"/>

이거도 추가해준다

 

웹뷰를 적용시킬 버튼에 바인딩 시킨다

itemView.setOnClickListener {
                val context: Context = itemView.context
                val url = "https://www.naver.com/"

                // WebViewActivity로 Intent 전송
                val intent = Intent(context, WebViewActivity::class.java)
                intent.putExtra("url", url)
                context.startActivity(intent)
            }

 

 

WebViewActivity.kt 파일을 추가해준뒤

이 코드를 추가한다


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

class WebViewActivity : AppCompatActivity() {

    private lateinit var webView: WebView

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

        webView = findViewById(R.id.webview)

        // 웹뷰 설정
        webView.webViewClient = WebViewClient()
        webView.settings.javaScriptEnabled = true

        // Intent로 받은 URL 로드
        val url = intent.getStringExtra("url")
        if (url != null) {
            webView.loadUrl(url)
        }
    }
}

 

 

activity_webview.xml 파일을 추가하고 아래에 코드를 넣는다

<?xml version="1.0" encoding="utf-8"?>
<androidx.constraintlayout.widget.ConstraintLayout xmlns:android="http://schemas.android.com/apk/res/android"
    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" />

</androidx.constraintlayout.widget.ConstraintLayout>



끝!

반응형
Comments