使用cordova-plugin-file在Ponegap中保存PDF文件

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了使用cordova-plugin-file在Ponegap中保存PDF文件相关的知识,希望对你有一定的参考价值。

您好我尝试使用cordova-plugin文件在Phonegap中保存PDF Datastring

样品:

%PDF-1.3
%ºß¬à
3 0 obj
<</Type /Page
/Parent 1 0 R
/Resources 2 0 R
/MediaBox [0 0 595.28 841.89]
/Contents 4 0 R
>>
endobj
4 0 obj
<</Length 8757>>
   

到具有此功能的PDF文件:

savePDF("Storecheck"+surveyID+".pdf", pdfOutput)

function savePDF(fileName, fileData) {

  console.log(fileData);

  //function writeToFile(fileName, data) {

  window.resolveLocalFileSystemURL(cordova.file.dataDirectory, function(directoryEntry) {
    directoryEntry.getFile(fileName, {
      create: true
    }, function(fileEntry) {
      fileEntry.createWriter(function(fileWriter) {
        fileWriter.onwriteend = function(e) {
          // for real-world usage, you might consider passing a success callback
          console.log('Speichern von "' + fileName + '"" abgeschlossen.');
        };

        fileWriter.onerror = function(e) {
          // you could hook this up with our global error handler, or pass in an error callback
          console.log('speichern fehlgeschlagen ' + e.toString());
        };

        var blob = new Blob([fileData], {
          type: 'application/pdf'
        });
        fileWriter.write(blob);
      }, );
    }, );
  }, );
}

我没有收到错误消息,但文件没有出现。另外,我想将PDF保存在“文档”中而不是“.file.dataDirectory”中

有人能告诉我我做错了什么吗?

答案

根据qazxsw poi我改变了功能。 qazxsw poi

我还补充说

the cordova-plugin-file documentaion
另一答案

哦,我三天后解决了 实际上,我只需要改变一行代码

<preference name="androidPersistentFileLocation" value="Internal" />
    <preference name="AndroidPersistentFileLocation" value="Compatibility" />
    <preference name="AndroidExtraFilesystems" value="sdcard,cache" />

LocalFileSystem.PERSISTENT仅适用于Android WITH ROOT

LocalFileSystem.PERSISTENT代表Android中的系统URL,你可以在文档中看到:<?xml version='1.0' encoding='utf-8'?> <widget id="de.check" version="1.0.0" xmlns="http://www.w3.org/ns/widgets" xmlns:gap="http://phonegap.com/ns/1.0"> <name> check</name> <description> check </description> <author email="info@heins.de" href="http://ally.de"> Development </author> <preference name="AndroidPersistentFileLocation" value="Internal" /> <preference name="AndroidPersistentFileLocation" value="Compatibility" /> <preference name="AndroidExtraFilesystems" value="sdcard,cache" /> <preference name="iosPersistentFileLocation" value="Library" /> <preference name="iosPersistentFileLocation" value="Compatibility" /> <!-- Don't block any requests --> <access origin="*" /> <content src="index.html" /> <plugin name="cordova-plugin-battery-status" spec="~1.2.2" /> <plugin name="cordova-plugin-camera" spec="~2.3.1" /> <plugin name="cordova-plugin-file" spec="~4.3.1" /> <plugin name="cordova-plugin-file-transfer" spec="~1.6.1" /> <plugin name="cordova-plugin-geolocation" spec="~2.4.1" /> <plugin name="cordova-plugin-vibration" spec="~2.1.3" /> <plugin name="cordova-plugin-statusbar" spec="~2.2.1" /> <plugin name="cordova-plugin-whitelist" source="npm"/> <engine name="android" spec="^6.4.0" /> </widget>

我把它改成了cordova.file.externalDataDirectory

在Phonegap桌面上输出NULL,你必须构建应用程序才能工作

所以我出来了:

window.requestFileSystem(LocalFileSystem.PERSISTENT, 0, function (fs) {

以上是关于使用cordova-plugin-file在Ponegap中保存PDF文件的主要内容,如果未能解决你的问题,请参考以下文章

生成 apk 时出现 Cordova-plugin-file 错误

在 Windows 10 中使用 cordova-plugin-file 复制 SQLite 数据库 cordova-sqlite-storage

使用cordova-plugin-file在Ponegap中保存PDF文件

PON为什么被称为无源光网络?不同PON技术的主要区别是什么?

50G-PON,继10G PON之后的新一代PON技术

苹果OLT PON告警是啥