Kotlin WebView Загрузка нескольких файлов - PullRequest
0 голосов
/ 16 мая 2019

У меня есть приложение, которое показывает веб-представление. Я наконец получил входные загрузки, работающие над этим:

class MainActivity : AppCompatActivity() {
    private lateinit var webWindow: WebView

    override fun onCreate(savedInstanceState: Bundle?) {
        super.onCreate(savedInstanceState)
        setContentView(R.layout.activity_main)

        webWindow = findViewById(R.id.webView)
        webWindow.settings.javaScriptEnabled = true

        webWindow.loadUrl("http://8wr.io/scoreboard/")
        webWindow.webViewClient = WebViewClient()
        webWindow.webChromeClient = MyWebChromeClient()
    }

    private var mFilePathCallback: ValueCallback<Array<Uri>>? = null
    private val FILECHOOSER_RESULTCODE = 1

    internal inner class MyWebChromeClient : WebChromeClient() {
        override fun onShowFileChooser(webView:WebView, filePathCallback: ValueCallback<Array<Uri>>, fileChooserParams:FileChooserParams):Boolean {
            mFilePathCallback = filePathCallback
            val intent = Intent(Intent.ACTION_GET_CONTENT)
            intent.type = "image/*"
            startActivityForResult(Intent.createChooser(intent, "Image Browser"), FILECHOOSER_RESULTCODE)
            return true
        }
    }

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

        if (requestCode == FILECHOOSER_RESULTCODE) {
            mFilePathCallback?.onReceiveValue(WebChromeClient.FileChooserParams.parseResult(resultCode,data))
            mFilePathCallback = null
        }
    }
}

Однако, это позволяет загружать только один файл за раз. Форма на моем сайте допускает несколько файлов одновременно. Как я могу изменить средство выбора файлов, чтобы правильно обрабатывать несколько файлов?

Я попытался добавить:

intent.putExtra(Intent.EXTRA_ALLOW_MULTIPLE, true);

Однако, хотя это позволяет мне выбрать несколько файлов ... результирующая форма не получает несколько вариантов выбора файлов. На самом деле он ничего не получает.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...