Я использую IONIC Cordova и у меня возникает проблема, когда я передаю targetSdkVersion с 23 по 26.
Вот моя проблема:
Я использую:
import {InAppBrowser} from '@ionic-native/in-app-browser';
import {File} from '@ionic-native/file';
В моем конструкторе у меня есть:
fileService: File, private iab: InAppBrowser
И после того, как я скачаю файл и запишу его в
this.fileService.externalDataDirectory
после того, как я сделаю это:
this.iab.create(this.fileService.externalDataDirectory + fileName, '_system', 'location=yes');
ИПриложение inappbrowser открывается и показывает мне файл.
Но когда я перехожу к targetSdkVersion 26, я получаю эту ошибку:
D/InAppBrowser: target = _system
D/InAppBrowser: in system
D/InAppBrowser: InAppBrowser: Error loading url file:///storage/emulated/0/Android/data/my.app/files/file.pdf:android.os.FileUriExposedException:
file:///storage/emulated/0/Android/data/my.app/files/file.pdf exposed beyond app through Intent.getData()
Может кто-нибудь помочь мне решить эту проблему?Я вижу, что мне нужно изменить свой файл манифеста, чтобы добавить провайдера, но я не уверен, как это сделать, и какой плагин мне нужно добавить в свой проект для его трансформации.