如何使用 Android Cordova 打开(不保存)使用 jspdf 生成的 blob?

Ala*_*rez 6 android cordova jspdf intel-xdk

我在尝试使用cordova打开由jspdf生成的PDF文件blob时遇到问题。我发现 Android 上有很多“安全”措施使得从保存的文件中打开非常困难,对我来说更是如此,因为我是跨平台应用程序的菜鸟,所以我需要找到一种方法来打开 blob保存。

我试过了,但控制台显示:“无法在‘URL’上执行‘createObjectURL’:找不到与提供的签名匹配的函数。”

这是我生成 pdf blob 的函数:

   function createPDF(){
      console.log("generating pdf...");
      var doc = new jsPDF();

      doc.text(20, 20, 'Document title');

      doc.setFont("courier");
      doc.setFontType("normal");
      doc.text(20, 30, 'test first line');
      doc.text(20, 50, 'test second line');

      var blobPDF = doc.output();

      var blobUrl = URL.createObjectURL(blobPDF);  <--- THE ERROR APPEARS HERE
      window.open(blobUrl,'_system','location=yes');
    }
Run Code Online (Sandbox Code Playgroud)

我需要的是打开文件,以便 Android 为我提供要打开的可选应用程序(Adobe 阅读器等)。

如何使此代码适用于 Android?我尝试了很多示例,但总是存在某种问题。

以防万一我使用的是 Intel XDK(版本 3522)并且我包含了 File、File-Transfer、InAppBrowser、FileOpener2 插件。

小智 5

试试这个,对我有用:

var blobPDF =  new Blob([ doc.output() ], { type : 'application/pdf'});
var blobUrl = URL.createObjectURL(blobPDF);  //<--- THE ERROR APPEARS HERE

window.open(blobUrl);  // will open a new tab

//window.open(blobUrl,'_system','location=yes'); will open a new window
Run Code Online (Sandbox Code Playgroud)