Я работаю над приложением Ionic hydrid. Я хочу создать pdf файл из уже созданного pdfstring на стороне клиента и сохранить его на устройстве локально.
Создал pdfstring с помощью jspdf doc.output("datauristring");
pdfstring выглядит примерно так:
данные: применение /PDF; base64, JVBERi0xLjMKMyAwIG9iago8PC9UeXBlIC9QYWdlCi9QYXJlbnQgMSAwIFIKL1Jlc291cmNlcyAyIDAgUgovQ29udGVudHMgNCAwIFI + PgplbmRvYmoKNCAwIG9iago8PC9MZW5ndGggMTA3Nz4 + CnN0cmVhbQowLjU3IHcKMCBHCkJUCi9GMSAxMCBUZgoxMCBUTAowIGcKMjEyLjYwIDgxMy41NCBUZAooT3JkZXIgTnVtYmVyIDogMS0zMjAzNCkgVGoKRVQKQlQKL0YxIDEwIFRmCjEwIFRMCjAgZwo1Ni42OSA3ODUuMjAgVGQKKE9yZGVyIFR5cGUgOiBTZXJ2aWNlIE9yZGVyKSBUagpFVApCVAovRjEgMTAgVGYKMTAgVEwKMCBnCjU2LjY5IDc1Ni44NSBUZAooT3JkZXIgU3RhdHVzIDogUGVuZGluZykg....
Я хотел бы сохранить вышеуказанный контент в pdf файл и сохранить его в том месте, откуда приложение может получить доступ в случае необходимости и отобразить его пользователю.
попробовал следующее, но, похоже, не работает
$cordovaFile.createFile(fileDir + 'test/one/Invoice.pdf',true)
.then(function(fileEntry) {
});
$cordovaFile.writeFile( fileDir + 'test/one/Invoice.pdf',$scope.pdfString, '')
.then(function(result) {
});
Добавить эту фабрику:
angular.module('ionic.utils', [])
.factory('$localstorage', ['$window', function($window) {
return {
set: function(key, value) {
$window.localStorage[key] = value;
},
get: function(key, defaultValue) {
return $window.localStorage[key] || defaultValue;
},
setObject: function(key, value) {
$window.localStorage[key] = JSON.stringify(value);
},
getObject: function(key) {
return JSON.parse($window.localStorage[key] || '{}');
}
}
}]);
Затем вы можете поместить его в контроллер или запустить функцию:
angular.module('app', ['ionic', 'ionic.utils'])
.run(function($localstorage) {
$localstorage.set('name', 'Max');
console.log($localstorage.get('name'));
$localstorage.setObject('post', {
name: 'Thoughts',
text: 'Today was a good day'
});
var post = $localstorage.getObject('post');
console.log(post);
});
для того чтобы Ios не нарушал свои правила резервного копирования icloud, вы должны установить
<!-- config.xml -->
<?xml version='1.0' encoding='utf-8'?>
<widget ...>
<preference name="BackupWebStorage" value="none" />
</widget>
В файле конфигурации xml. Также поймите, что локальное хранилище никогда не бывает таким хорошим, как БД.