NativeScript中的jsPDF错误:ReferenceError:找不到变量:window

时间:2019-10-04 14:57:52

标签: javascript angular typescript nativescript jspdf

我试图在我的NativeScript项目(Angular + Typescript)中添加jsPDF,以将HTML转换为PDF。我遵循了this guide,以了解如何在NativeScript中使用jsPDF。但是,当我尝试对示例进行编码时,我仍然遇到相同的错误:

 $answer->question_id = $request->get('question_id');

我一直收到以下错误:

  

NativeScript遇到致命错误:ReferenceError:找不到   变量:窗口

我以为这些行可以解决此错误,但它们却没有,我试图在我尝试使用pdf生成的组件中以及main.ts和app.component.ts中添加此行:

let doc = new jsPDF();
        doc.setFontSize(26);
        doc.text(40, 40, "First PDF with NativeScript using jsPDF!");
        let dataUrl = doc.output('datauristring');
        if(dataUrl) {
            dialogs.alert({
                title: "jsPDF - Base64",
                message: dataUrl,
                okButtonText: "Copy to Clipboard"
            }).then(() => {
                clipboard.setText(dataUrl)
            });
        }

但是,我仍然遇到相同的错误,并且找不到我的代码和working example playground之间的任何区别。我还添加了所有库和使该示例正常工作所需的插件:

global['window'] = {
    'document': {
        'createElementNS': () => { return {} }
    }
};
global['document'] = {
    'createElement': (str) => { return {} }
};
global['navigator'] = {};
//Imports
var base64 = require('base-64');
import * as jsPDF from 'jspdf';
global['btoa'] = (str) => {
    return base64.encode(str);
};
global['atob'] = (bytes) => {
    return base64.decode(bytes);
};
global['u8'] = {};

编辑,我还尝试将这些节点模块降级为游乐场使用的相同版本。还是一样的错误。

编辑如果我像在操场上一样使用节点模块,那么我只是将它们添加到应用程序目录中,它也可以正常运行。还是觉得这很不好,还有其他解决方案吗?

有人看到我在做什么错或在这里我想念什么吗?任何帮助都将非常不错,谢谢!!

0 个答案:

没有答案