Я не могу использовать файл cordova-plugin-file для записи файла в iOS 12. Код работает для меня, когда я развертываю приложение на своем iPhone 7 Plus, который работает под управлением iOS 11.4.Все, что я пытаюсь сделать, это выбрать файл из библиотеки фотографий и сохранить его в каталоге данных.
После того, как я успешно выбрал файл из библиотеки, вот код, который я использую для записи в каталог данных.
writeToFile(fileName, data) {
return new Promise((resolve, reject) => {
if (this.isBrowser) {
return resolve({});
}
const self = this;
window.resolveLocalFileSystemURL(cordova.file.dataDirectory, function (directoryEntry) {
directoryEntry.getFile(fileName, {
create: true
}, function (fileEntry) {
fileEntry.createWriter(function (fileWriter) {
console.log('THIS IS PRINTING: Inside fileEntry.createWriter promise');
fileWriter.onwriteend = function (e) {
console.log('NOT PRINTING: Inside fileWriter.onwriteend promise');
return resolve(fileName);
};
fileWriter.onerror = function (e) {
return reject(e);
// you could hook this up with our global error handler, or pass in an error callback
};
const blob = new Blob([data], {
type: 'image/png'
});
fileWriter.write(blob);
}, self.fileErrorHandler.bind(null, fileName));
}, self.fileErrorHandler.bind(null, fileName));
}, self.fileErrorHandler.bind(null, fileName));
});
}
Я передаю локальный URL-адрес файла в качестве параметра данныхк функции.Я попытался изменить это на строку и тип blob, чтобы быть text / plain.Но это также не помогло.
Фрагмент из моего config.xml
<preference name="iosPersistentFileLocation" value="Library" />
<platform name="ios">
<edit-config file="*-Info.plist" mode="merge" target="NSCameraUsageDescription">
<string>need camera access to take pictures</string>
</edit-config>
<edit-config file="*-Info.plist" mode="merge" target="NSPhotoLibraryUsageDescription">
<string>need photo library access to get pictures from there</string>
</edit-config>
<edit-config file="*-Info.plist" mode="merge" target="NSLocationWhenInUseUsageDescription">
<string>need location access to find things nearby</string>
</edit-config>
<edit-config file="*-Info.plist" mode="merge" target="NSPhotoLibraryAddUsageDescription">
<string>need photo library access to save pictures there</string>
</edit-config>
</platform>
Меня удивляет то, что код отлично работает в моем iPhone 7 Plus (на iOS 11.4), но когдаЯ пытаюсь на iPhone XR под управлением iOS 12, FileWriter onwriteend не запускается.Попытка перехвата всех ошибок, и никаких ошибок не возникает.
Я также вижу эту ошибку в консоли XCode
2019-06-23 10:28:51.806034-0400 Magically[30751:2758873] [discovery]
errors encountered while discovering extensions: Error Domain=PlugInKit
Code=13 "query cancelled"
UserInfo={NSLocalizedDescription=query cancelled}
В качестве обходного пути я рассматриваю возможность создания большого двоичного объекта изURL-адрес изображения и сохранить его в локальном хранилище.
Можете ли вы помочь?