使用 pdfmake 在默认应用程序中打开 pdf
Open pdf in default app using pdfmake
我可以在我的 ionic 应用程序中创建 pdf,如果我 运行 chrome 中的应用程序,它会完美打开。但是,如果我在 android 设备上安装我的应用程序,它不会打开。下面是我的代码。如果我必须做一些额外的事情才能在设备上打开它,有人可以帮助我吗?我想用设备上的默认 pdf 应用程序打开它。
pdfMake.createPdf(dd).open();
好的。在我的头撞墙 3 天后,我终于找到了解决方案并在这里分享,以便其他面临这个问题的人可以获得帮助。我正在创建 pdf 并使用 cordova 文件插件保存它。成功保存后,我使用 cordova 文件打开器插件在默认应用程序中打开它。下面是我的代码。
pdfMake.createPdf(YOUR_DEFINITION_HERE).getBlob(buffer => {
this.file.resolveDirectoryUrl(this.file.externalRootDirectory)
.then(dirEntry => {
this.file.getFile(dirEntry, 'test1.pdf', { create: true })
.then(fileEntry => {
fileEntry.createWriter(writer => {
writer.onwrite = () => {
this.fileOpener.open(fileEntry.toURL(), 'application/pdf')
.then(res => { })
.catch(err => {
const alert = this.alertCtrl.create({ message:
err.message, buttons: ['Ok'] });
alert.present();
});
}
writer.write(buffer);
})
})
.catch(err => {
const alert = this.alertCtrl.create({ message: err, buttons: ['Ok'] });
alert.present();
});
})
.catch(err => {
const alert = this.alertCtrl.create({ message: err, buttons: ['Ok']
});
alert.present();
});
});
我可以在我的 ionic 应用程序中创建 pdf,如果我 运行 chrome 中的应用程序,它会完美打开。但是,如果我在 android 设备上安装我的应用程序,它不会打开。下面是我的代码。如果我必须做一些额外的事情才能在设备上打开它,有人可以帮助我吗?我想用设备上的默认 pdf 应用程序打开它。
pdfMake.createPdf(dd).open();
好的。在我的头撞墙 3 天后,我终于找到了解决方案并在这里分享,以便其他面临这个问题的人可以获得帮助。我正在创建 pdf 并使用 cordova 文件插件保存它。成功保存后,我使用 cordova 文件打开器插件在默认应用程序中打开它。下面是我的代码。
pdfMake.createPdf(YOUR_DEFINITION_HERE).getBlob(buffer => {
this.file.resolveDirectoryUrl(this.file.externalRootDirectory)
.then(dirEntry => {
this.file.getFile(dirEntry, 'test1.pdf', { create: true })
.then(fileEntry => {
fileEntry.createWriter(writer => {
writer.onwrite = () => {
this.fileOpener.open(fileEntry.toURL(), 'application/pdf')
.then(res => { })
.catch(err => {
const alert = this.alertCtrl.create({ message:
err.message, buttons: ['Ok'] });
alert.present();
});
}
writer.write(buffer);
})
})
.catch(err => {
const alert = this.alertCtrl.create({ message: err, buttons: ['Ok'] });
alert.present();
});
})
.catch(err => {
const alert = this.alertCtrl.create({ message: err, buttons: ['Ok']
});
alert.present();
});
});