我继承了一个在 iOS 和 Android 上运行的旧版 React-Native 旧版应用程序。有一段代码可以生成 PDF 报告,我将其粘贴在下面。该代码在 Android 中运行得很好,但在 iOS 应用程序中却挂起。 导入功能:
import pdfmake from "pdfmake/build/pdfmake";
import pdfFonts from "pdfmake/build/vfs_fonts";
const generatePdf = (docDefinition) =>
new Promise((resolve, reject) => {
try {
const pdfDocGenerator = pdfmake.createPdf(docDefinition);
pdfDocGenerator.getBase64((pdfData) => {
resolve({
pdfBase64Data: `data:application/pdf;base64,${pdfData}`,
onlyData: pdfData,
});
});
} catch (error) {
reject(error);
}
});
由于它在 Android 中可以正常工作,因此可以假设
docDefinition
具有正确的值。pdfDocGenerator
,它正确地打印了对象。
问题是 pdfDocGenerator.getBase64((pdfData)
永远不会返回,并且无法解决到下一个级别
这种情况仅发生在 iOS 中
package.json 有以下行
"pdfmake": "^0.2.6",
,我可以看到它安装了 0.2.7 版本
代码/项目是由另一个团队开发的,现在我负责该项目的延续。发布版本代码在两个平台上都运行得很好。但我无法让它在项目环境中工作。高度怀疑环境设置/不知何故,pdfmake 库没有捆绑在 iOS 中。
rm -rf package-lock.json node_modules
rm -rf android/app/build
rm ios/Pods ios/Podfile.lock
rm -rf ~/Library/Developer/Xcode/DerivedData
npm install && cd ios && pod update && cd ..
我在 Github 中发现了类似的问题。因此更改 pdfmake 版本 0.1.72 版本解决了我的问题。问题是这是处理它的理想方法吗!?