Использование jsPDF с JavaScriptCore в Swift - PullRequest
0 голосов
/ 23 марта 2020

Я пытаюсь использовать библиотеку jsPDF в своем приложении Swift с использованием JavaScriptCore. Когда я пытаюсь загрузить библиотеку jsPDF, я получаю следующую ошибку: ReferenceError: Невозможно найти переменную: window . Это не удивительно, поскольку здесь нет переменной window . Но на удивление создание моего pdf документа работает без проблем.

У меня есть два следующих вопроса:

  1. Есть ли способ загрузить библиотеку без этой ошибки?
  2. Безопасно ли использовать библиотеку даже при наличии этой ошибки? Или это сломается при определенных обстоятельствах?

Любая помощь или совет будут оценены.

Это мой исходный код:

func initializeJS() {

    self.jsContext = JSContext()

    // Add an exception handler.
    self.jsContext.exceptionHandler = { context, exception in
        if let exc = exception {
            print("JS Exception:", exc.toString() ?? "error")
        }
    }

    // Load the jsPDF library.
    if let jsPdfPath = Bundle.main.path(forResource: "jspdf.min", ofType: "js") {
        do {
            let jsPdfContents = try String(contentsOfFile: jsPdfPath)
            self.jsContext.evaluateScript(jsPdfContents)
        }
        catch {
            print(error.localizedDescription)
        }
    }

    // Load the pdf generation code from the pdf.js file.
    if let jsSourcePath = Bundle.main.path(forResource: "pdf", ofType: "js") {
        do {
            let jsSourceContents = try String(contentsOfFile: jsSourcePath)
            self.jsContext.evaluateScript(jsSourceContents)
        }
        catch {
            print(error.localizedDescription)
        }
    }
}
...