Я пытаюсь загрузить файл с помощью WebView в Android.
Это код используется:
@TargetApi(Build.VERSION_CODES.LOLLIPOP)
@Override
public boolean onShowFileChooser(WebView webView, final ValueCallback<Uri[]> filePathsCallback, final WebChromeClient.FileChooserParams fileChooserParams) {
Intent intent = fileChooserParams.createIntent();
LOG.d(LOG_TAG, "mime types: " + Arrays.toString(fileChooserParams.getAcceptTypes()));
// PRINTS [.jpg,.png,.tiff,.jpeg,.tif,.pdf] !!
try {
parentEngine.cordova.startActivityForResult(new CordovaPlugin() {
@Override
public void onActivityResult(int requestCode, int resultCode, Intent intent) {
// ...
}
}, intent, FILECHOOSER_RESULTCODE);
} catch (ActivityNotFoundException e) {
// ...
}
return true;
}
Проблема заключается в том, что когда внешняя библиотека, которую я должен использовать (ng-file-upload
), запускает выполнение этого метода, типы MIME, передаваемые в качестве аргумента в fileChooserParams: [.jpg,.png,.tiff,.jpeg,.tif,.pdf]
.Я не вижу большинства из них в списке разрешенных типов пантомимы .
Как следствие я нахожу эту ошибку в LogCat: No activity found to handle file chooser intent.: android.content.ActivityNotFoundException: No Activity found to handle Intent { act=android.intent.action.GET_CONTENT cat=[android.intent.category.OPENABLE] typ=.jpg,.png,.tiff,.jpeg,.tif,.pdf }
Если я простодобавьте intent.setType("image/* application/pdf");
все работает как положено!
Теперь вопрос : в запросе на слияние , который я хочу отправить на cordova-android вкладчики, как мне безопасно преобразовать fileChooserParams в правильный формат?