마스터Q&A 안드로이드는 안드로이드 개발자들의 질문과 답변을 위한 지식 커뮤니티 사이트입니다. 안드로이드펍에서 운영하고 있습니다. [사용법, 운영진]

코틀린 웹뷰 이미지업로드 질문......

0 추천

코틀린으루 개발했구요 웹뷰를 만들었는데

이미지업로드를 작업하던중 이미지가 하나밖에 선택이 안되고 하나만 올라갑니다

멀티로 이미지를 선택해서 한번에 올릴려는데 잘 안되서 조언좀 부탁드립니다.

 

override fun onShowFileChooser(
    webView: WebView,
    filePathCallback: ValueCallback<Array<Uri>>,
    fileChooserParams: FileChooserParams
): Boolean {

    mFilePathCallback = filePathCallback
    val intent = if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.LOLLIPOP) {
        Log.d("test", "version lollipop!");
        fileChooserParams.createIntent()

    } else {
        TODO("VERSION.SDK_INT < LOLLIPOP")
        Intent(Intent.ACTION_GET_CONTENT);
    }
    intent.setAction(Intent.ACTION_GET_CONTENT);
    intent.addCategory(Intent.CATEGORY_OPENABLE);
    intent.setType("image/*");
    intent.putExtra(Intent.EXTRA_ALLOW_MULTIPLE, true);
    startActivityForResult(Intent.createChooser(intent, "Image Browser"), FILECHOOSER_RESULTCODE)
    return true
}

 

파일 선택관련 소스입니다

 

intent 부분에 

 intent.putExtra(Intent.EXTRA_ALLOW_MULTIPLE, true);

로 멀티로 했는데 그냥 클릭시는 안되고 롱클릭시 여러개의 이미지가 선택은 됩니다

 

override fun onActivityResult(requestCode: Int, resultCode: Int, data: Intent?) {
    super.onActivityResult(requestCode, resultCode, data)

    if (requestCode == FILECHOOSER_RESULTCODE) {
        if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.LOLLIPOP) {
            mFilePathCallback?.onReceiveValue(WebChromeClient.FileChooserParams.parseResult(resultCode, data))
        }
        mFilePathCallback = null
    }
}

 

결과는 이렇게 받아왔는데 정상적으로 1개의 이미지는 업로드가 되는데 멀티로는 롱클릭으로 선택은 되는데 저장시 이미지가 불러오지 않습니다....

WelchsKiller (600 포인트) 님이 2019년 10월 30일 질문

답변 달기

· 글에 소스 코드 보기 좋게 넣는 법
· 질문에 대해 추가적인 질문이나 의견이 있으면 답변이 아니라 댓글로 달아주시기 바랍니다.
표시할 이름 (옵션):
개인정보: 당신의 이메일은 이 알림을 보내는데만 사용됩니다.
스팸 차단 검사:
스팸 검사를 다시 받지 않으려면 로그인하거나 혹은 가입 하세요.
...