我使用Cordiva,Ionic和Angular在Visual Studio Code中创建了一个应用程序。我可以从服务器请求一些json文件,在此json中,其中包括base64格式的pdf文件。为了显示pdf,我获得了InAppBrowser插件,并且为了显示pdf,我使用了以下代码:
构造函数:
constructor(public events: Events, public httpClient: HttpClient, private iab: InAppBrowser,
public userServiceProvider: UserServiceProvider, public deviceServiceProvider: DeviceServiceProvider) {
super(events);
}
和特定通话:
const browser = this.inAppBrowser.create('assets/pdf/web/viewer.html', '_blank', 'location=no,zoom=no,toolbar=no,fullscreen=yes,hidden=yes');
let load: boolean = false;
browser.on('loadstop').subscribe(event => {
if (!load) {
browser.executeScript({ code: "loadBase64Content('" + entity.pdfContent + "')" });
load = true;
}
browser.show();
});
assets / pdf / web / viewer.html是:https://github.com/mozilla/pdf.js/blob/master/web/viewer.html
我添加了一个小js来转换base64内容。
<script>
function loadBase64Content(base64) {
var u8_2 = new Uint8Array(atob(base64).split("").map(function (c) {
return c.charCodeAt(0);
}));
PDFViewerApplication.open(u8_2)
}
</script>
pdf如所希望地显示。 在Android中,我可以使用硬件后退按钮返回到我的应用程序,但是对于iOS,我需要一个软件按钮来关闭浏览器,或者我被困在pdf查看器中并且必须关闭该应用程序。我用onclick =“ close()”的普通按钮尝试了-但这没用-这就是我认为我需要关闭浏览器本身的原因-但是我该如何从view.html进行函数调用父页面以在浏览器实例上调用关闭/隐藏。