Android
[Android]Kotlin - WebView 사용하기
bryan.oh
2023. 8. 16. 23:18
반응형
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
반응형