반응형
AndroidManifest.xml 에서 다음 권한을 추가해줍니다.
<uses-permission android:name="android.permission.INTERNET" />
Activity 를 하나 생성합니다.
layout 파일에서 WebView 를 검색해서 추가합니다.
또는 직접 코드 추가.
<WebView
android:id="@+id/webview"
android:layout_width="409dp"
android:layout_height="729dp"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="parent" />
아래는 Activity 의 코드입니다.
class WebViewActivity : AppCompatActivity() {
private lateinit var binding: ActivityWebViewBinding
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
binding = ActivityWebViewBinding.inflate(layoutInflater)
setContentView(binding.root)
binding.webview.webViewClient = WebViewClient()
binding.webview.loadUrl("https://hello-bryan.tistory.com")
}
}
그리고 실행해보면,
그 외 셋팅.
binding.webview.apply {
webViewClient = WebViewClient() // 링크 클릭시 새창 띄우기 방지
webChromeClient = WebChromeClient() // 크롬환경에 맞는 세팅(ex, alert)
settings.javaScriptEnabled = true // 자바스크립트 허용
settings.javaScriptCanOpenWindowsAutomatically = false
settings.setSupportMultipleWindows(false) // 새창 띄우기 허용 여부
settings.loadsImagesAutomatically = true // 웹뷰가 앱에 등록되어 있는 이미지 리소스를 자동으로 로드
settings.useWideViewPort = true // 화면 사이즈 맞추기 허용 여부
settings.loadWithOverviewMode = true // 메타태그 허용 여부
settings.setSupportZoom(true) // 화면 줌 허용여부
settings.builtInZoomControls = false // 화면 확대 축소 허용여부
settings.displayZoomControls = false
settings.cacheMode = WebSettings.LOAD_NO_CACHE // 웹뷰의 캐시 모드
settings.domStorageEnabled = true // 로컬 스토리지 사용 여부를 설정
settings.allowContentAccess // 웹뷰 내에서 파일 액세스 활성화 여부
settings.userAgentString = "app" // 웹에서 해당 속성을 통해 앱에서 띄운 웹뷰로 인지 할 수 있도록 함
settings.defaultTextEncodingName = "UTF-8" // 인코딩 설정
settings.databaseEnabled = true //Database Storage API 사용 여부 설정
/**
1. LOAD_CACHE_ELSE_NETWORK 기간이 만료돼 캐시를 사용할 수 없을 경우 네트워크를 사용합니다.
2. LOAD_CACHE_ONLY 네트워크를 사용하지 않고 캐시를 불러옵니다.
3. LOAD_DEFAULT 기본적인 모드로 캐시를 사용하고 만료된 경우 네트워크를 사용해 로드합니다.
4. LOAD_NORMAL 기본적인 모드로 캐시를 사용합니다.
5. LOAD_NO_CACHE 캐시모드를 사용하지 않고 네트워크를 통해서만 호출합니다.
*/
}
728x90
반응형
'Android' 카테고리의 다른 글
[Kotlin] RecyclerView 사용하기 (0) | 2023.08.17 |
---|---|
[Kotlin] SQLite 에서 statement ? parameter 사용하기 (0) | 2023.08.16 |
[Kotlin] SQLiteDatabase 기본적인 사용 방법 (0) | 2023.08.10 |
[Kotlin] Android Camera 사용하기 (0) | 2023.08.04 |
[Kotlin] Json String (List) 을 Data Class 로 변환 (GSON) (0) | 2023.08.02 |
댓글