반응형
개발 환경
---------------------------------
OS : Mac
개발 툴 : Android Studio
개발 언어 : Kotlin
targetSdk : 31
minSdk : 23
---------------------------------
웹뷰에서 파일 업로드 버튼을 클릭하면 기기의 내부 저장소에 접근되어야 합니다.
기기 내부 저장소에 접근하려면?
권한부터 줍시다.
WRITE_EXTERNAL_STORAGE 권한을 요청합니다.
<uses-permission
android:name="android.permission.WRITE_EXTERNAL_STORAGE"
tools:node="replace" />
FileChooserCallback 객체를 선언해줍니다.
var mFileChooserCallback : ValueCallback<Array<Uri>>? = null
WebChromeClient 클래스 안에 onShowFileChooser 메서드를 override 해줍니다.
override fun onShowFileChooser(
webView: WebView?,
filePathCallback: ValueCallback<Array<Uri>>?,
fileChooserParams: WebChromeClient.FileChooserParams?
): Boolean {
if (mFileChooserCallback != null) {
mFileChooserCallback = null
}
mFileChooserCallback = filePathCallback
Intent(Intent.ACTION_GET_CONTENT).apply {
addCategory(Intent.CATEGORY_OPENABLE)
type = "*/*"
startActivityForResult(Intent.createChooser(this, ""), FILE_CHOOSE)
}
return true
}
모든 파일에 접근 가능하게 하겠다는 의미입니다.
java로는 setType = "*/*" 입니다.
type = "*/*"
반응형
'개발노트 > Android' 카테고리의 다른 글
[Android] sha1 구하기 (0) | 2023.06.12 |
---|---|
[Android] WebView Custom UserAgent 셋팅하기 (0) | 2023.03.27 |
[Kotlin] OKHttp Logging Interceptor사용하기 (0) | 2023.02.20 |
[Kotlin] ListView 만들기 (0) | 2023.02.20 |
[Kotlin] Android 11 권한 이슈 처리 (0) | 2023.02.20 |
댓글