как загрузить локальный файл в webview

#android #file #kotlin #local-storage #android-webview

Вопрос:

Я пытаюсь загрузить этот файл в свой веб-просмотр, но он не загружается

путь к файлу-это что-то вроде

  • /data/user/0/com.xyzapp.app/cache/temp_file.docx //это getpathhh

ниже приведен мой код

первое занятие:-

 val browseintent = Intent(this, WebviewActivityNew::class.java)  browseintent.putExtra("url", "file://" getpathhh.toString())  startActivity(browseintent)  

второе Мероприятие:-

 val url = intent.extras!!.getString("url")  webview_comp.getSettings().setLoadsImagesAutomatically(true);  webview_comp.getSettings().setJavaScriptEnabled(true);  webview_comp.getSettings().setAllowContentAccess(true);  webview_comp.getSettings().setAllowFileAccess(true);  webview_comp.setScrollBarStyle(View.SCROLLBARS_INSIDE_OVERLAY);  webview_comp.getSettings().setAppCachePath(url);  webview_comp.getSettings().setAppCacheEnabled(true);  webview_comp.getSettings().setCacheMode(WebSettings.LOAD_CACHE_ELSE_NETWORK);  url?.let { webview_comp.loadUrl(it) };  

если я использую Action_view

 val pdfOpenintent = Intent(Intent.ACTION_VIEW)  pdfOpenintent.flags = Intent.FLAG_ACTIVITY_CLEAR_TOP  pdfOpenintent.setDataAndType(Uri.fromFile(getpathhh), "*/*")  try {  startActivity(pdfOpenintent)  } catch (e: ActivityNotFoundException) {  }  

я получаю сбой как ‘E/uncaughtException: исключение android.os.FileUriExposedException: file:///data/user/0/com.xyzapp.app/cache/temp_file.docx доступно за пределами приложения с помощью Intent.getData()’

следуя тому, что я пробовал

 val pdfOpenintent = Intent(Intent.ACTION_VIEW)  pdfOpenintent.flags = Intent.FLAG_ACTIVITY_CLEAR_TOP  pdfOpenintent.setDataAndType(  FileProvider.getUriForFile(  applicationContext,  "com.xyzapp.app.provider",  getpathhh  ), "*/*")  try {  startActivity(pdfOpenintent)  } catch (e: ActivityNotFoundException) {  }  

Комментарии:

1. Хорошо… что происходит не так?

2. @blackapps я отредактировал свой вопрос

3. Вы не искали в Google FileUriExposedException ? Uri.fromFile(getpathhh Вы больше не можете использовать Uri.fromFile (). Вы должны использовать FileProvider .

4. можете вставить какую-нибудь ссылку или дать мне новый ответ, пожалуйста, @blackapps?

5. Погуглите для FileUriExposedException .

Ответ №1:

/data/user/0/com.xyzapp.app/cache/temp_file.docx

Веб-представление предназначено для документов .html.

Он не может отображать файл .docx.

Комментарии:

1. тогда как я могу загрузить это расположение файла??

2. Вы можете использовать ACTION_VIEW и позволить пользователю выбрать приложение из появившегося списка, которое может обрабатывать файлы .docx. Вы устанавливали такие приложения на свое устройство? (Я этого не делал).

3. я отредактировал свой вопрос

4. пожалуйста, я получаю сбой

5. Поймайте это исключение, и ваше приложение не выйдет из строя…. 😉