일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- 에러
- viewpager
- 깃헙
- 코틀린
- 의존성주입
- 안스
- RecyclerView
- error
- WebView
- 유튜브
- dart
- 코루틴
- 안드로이드스튜디오
- image
- 스튜디오
- 웹뷰
- GIT
- build
- Gradle
- Android
- MVVM
- ADB
- 안드로이드 스튜디오
- 안드로이드
- Kotlin
- 레트로핏
- Retrofit
- studio
- coroutine
- Github
- Today
- Total
목록웹뷰 (7)
코딩하는 일용직 노동자
개발중인 하이브리드 앱의 웹뷰에 카카오톡으로 공유하기 기능이 있는데 카카오톡으로 이동도 하지 않고 net:ERR_UNKNOWN_URL_SCHEME 에러가 발생했습니다. 구글신에게 검색해보니 a href 에서 앞에 intent: 만 제거해서 붙이는 방법이 있었고 WebViewClient 의 shouldOverrideUrlLoading() 에서 처리해주는 방법이 있었습니다. 저는 shouldOverrideUrlLoading() 에서 아래의 소스를 추가해서 문제를 해결했습니다. @Override public boolean shouldOverrideUrlLoading(WebView view, String url) { LogUtil.e("shouldOverrideUrlLoading :: " + url); try ..
안드로이드 웹뷰에서 불러온 html 페이지의 소스를 얻어내는 방법. fun initView() { webView.settings.apply { this.setSupportMultipleWindows(false) // 새창 띄우기 허용 this.setSupportZoom(false) // 화면 확대 허용 this.javaScriptEnabled = true // 자바스크립트 허용 this.javaScriptCanOpenWindowsAutomatically = false // 자바스크립트 새창 띄우기 허용 this.loadWithOverviewMode = true // html의 컨텐츠가 웹뷰보다 클 경우 스크린 크기에 맞게 조정 this.useWideViewPort = true // html의 viewpo..
# 들어가며 하이브리드 앱에서 웹뷰로 열린 웹문서에 태그가 있습니다. 사진을 첨부하기 위한 기능입니다. iOS는 앱에서 별도의 처리가 없어도 사진을 선택하면 웹으로 사진이 잘 등록됩니다만, 안드로이드에서는 사진을 선택해도 웹으로 등록이 안됩니다. 이번 포스팅에서는 태그에 카메라 or 사진 갤러리를 표시하고 사진촬영이나 이미지 선택후 웹에 이미지를 넘겨주는 처리를 알려드리겠습니다. 우선 WebChromeClient() 를 상속받은 커스텀 클래스를 만들고 아래의 함수를 오버라이드 해줍니다. class CustomWebChromeClient(val activity: AppCompatActivity) : WebChromeClient() { var filePathCallbackLollipop: ValueCallb..
유튜브를 웹뷰로 보여주도록 처리를 했는데 사이드 이펙트가 있었습니다. 전체화면 모드로 이동 후 복귀하면 웹뷰에 보여지는 화면 UI가 너무 이상하게 나오는겁니다. 또한 전체화면 모드에서 가로모드로 플레이가 되지 않습니다. 첨부된 소스를 이용하면 전체화면 모드시 가로모드로 전환해서 플레이가 됩니다. 또한 Back key 를 눌러 복귀해도 UI 상에 문제도 발생하지 않습니다. private fun setWebViewYoutube(wvYoutube: WebView, movieId: String) { wvYoutube.settings.apply { javaScriptEnabled = true setAppCacheEnabled(true) pluginState = WebSettings.PluginState.ON } ..
유튜브에서 url을 공유할때 보면 www.youtu.be/nA8PosPb70c 이런식으로 url 이 클립보드에 복사됩니다. 이걸 웹뷰에서 열면 영상 뿐만 아니라 좋아요 버튼같은 유튜브의 다른 불필요한 UI도 화면에 표시됩니다. 웹뷰에 유튜브 영상 알맹이만 꽉차게 표시하고 싶으면 웹뷰에 www.youtube.com/embed/영상아이디 이렇게 하면 됩니다. 영상아이디는 유튜브 공유 URL 의 가장 마지막 / 뒤에 영문+숫자가 아이디입니다. www.youtube.com/embed/nA8PosPb70c 이렇게 호출시키니깐 웹뷰 화면에 영상이 꽉 차게 표시 됩니다. ^^ wvYoutube.settings.apply { javaScriptEnabled = true setAppCacheEnabled(true) pl..
전체화면 사이즈의 Dialog 로 만들어진 화면이 있습니다. 메인화면에서 이동되는 서브화면이 모두 Dialog 로 만들어진 화면입니다. 그리고 이 화면은 웹뷰가 전체화면 사이즈로 배치되어 있습니다. 실행해보면 웹뷰로된 액티비티와 별반 다를게 없는 서브화면입니다. 이 화면이 키보드가 올라와있는 상태에서 웹의 팝업이 뜨게되면 키보드가 내려가면서 해당 부분이 제대로 그려지지 않아 하얗게 보이는 현상이 발생했습니다. 버튼 클릭시 키보드가 내려가는 시간과 팝업이 보이는 시간이 같아서 발생하는듯 합니다. 처음에는 팝업이 보이는 타이밍을 0.2~0.3초 정도 딜레이를 주면 되지 않을까 했는데... 문제는 로그인 화면뿐만 아니라 텍스트입력창이 있는 다른 여러 서브화면에서 똑같은 현상이 있기때문에 모든 화면의 팝업들에 ..
코틀린 안드로이드 웹뷰 셋팅. webView.settings.apply { this.setSupportMultipleWindows(false) // 새창 띄우기 허용 this.setSupportZoom(false) // 화면 확대 허용 this.javaScriptEnabled = true // 자바스크립트 허용 this.javaScriptCanOpenWindowsAutomatically = false // 자바스크립트 새창 띄우기 허용 this.loadWithOverviewMode = true // html의 컨텐츠가 웹뷰보다 클 경우 스크린 크기에 맞게 조정 this.useWideViewPort = true // html의 viewport 메타 태그 지원 this.builtInZoomControls =..