WebView 만들기

노지수·2022년 2월 7일
0

activity_main

<?xml version="1.0" encoding="utf-8"?>
<androidx.constraintlayout.widget.ConstraintLayout
        xmlns:android="http://schemas.android.com/apk/res/android"
        xmlns:tools="http://schemas.android.com/tools"
        xmlns:app="http://schemas.android.com/apk/res-auto"
        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"
            app:layout_constraintStart_toStartOf="parent"
            app:layout_constraintEnd_toEndOf="parent"
            app:layout_constraintTop_toTopOf="parent"
            app:layout_constraintBottom_toBottomOf="parent"/>
</androidx.constraintlayout.widget.ConstraintLayout>

MainActivity

1. url호출

MainActivity 코드

class MainActivity : AppCompatActivity() {

    val b by lazy { ActivityMainBinding.inflate(layoutInflater) }

    override fun onCreate(savedInstanceState: Bundle?) {
        super.onCreate(savedInstanceState)
        setContentView(b.root)
        
        // 이동할 url주소 입력
        b.webView.loadUrl("https://m.naver.com")
    }
}

AndroidManifest.xml

// 인터넷사용이 가능하게함 
<uses-permission android:name="android.permission.INTERNET" />

AndroidManifest.xml파일 안에서 manifest안에 해당 코드 추가

결과

네이버 주소로 이동

2. 태그호출

MainActivity 코드

class MainActivity : AppCompatActivity() {

    val b by lazy { ActivityMainBinding.inflate(layoutInflater) }

    override fun onCreate(savedInstanceState: Bundle?) {
        super.onCreate(savedInstanceState)
        setContentView(b.root)
        
        // 태그입력 후 
        val tag = "<html><head><meta charset=\"UTF-8\"></head><body>Hello World! 안녕하세요!</body></html>"
        b.webView.loadData(tag, "text/html", "UTF-8")
    }
}

결과

입력한 태그대로 출력

3. html문서 호출

호출 할 문서 저장

app - src - main - assets(지원폴더)에 파일 저장

MainActivity 코드

class MainActivity : AppCompatActivity() {

    val b by lazy { ActivityMainBinding.inflate(layoutInflater) }

    override fun onCreate(savedInstanceState: Bundle?) {
        super.onCreate(savedInstanceState)
        setContentView(b.root)

        // html문서 경로
        b.webView.loadUrl("file:///android_asset/hello.html")
		
        // webView에서 자바스크립트사용 허용
        b.webView.settings.javaScriptEnabled = true
		
        //크롬환경에 맞는세팅(alert등 알람을 받기위해선 꼭 입력해야함
        b.webView.webChromeClient = WebChromeClient()
    }
}

결과

해당 문서의 화면

profile
프로그래밍, 개념 및 이론 기록

0개의 댓글