+
+ ⚠️ PDF预览失败
+
+
+ ${error.message || '未知错误'}
+
+
+
+ `;
+ });
+
+ popupInstance = overlay;
+
+ overlay.addEventListener('click', (e) => {
+ if (e.target === overlay) {
+ closeBtn.onclick();
+ }
+ });
+
+ return overlay;
+};
+
+// APP环境:保存Blob到临时文件
+const saveBlobToFile = (blob, fileName) => {
+ return new Promise((resolve, reject) => {
+ // #ifdef APP-PLUS
+ const reader = new FileReader();
+ reader.onload = (e) => {
+ const base64Data = e.target.result.split(',')[1];
+ const filePath = '_doc/' + Date.now() + '_' + fileName;
+ plus.io.writeFile({
+ filename: filePath,
+ data: base64Data,
+ success: () => {
+ resolve(filePath);
+ },
+ fail: (err) => {
+ reject(err);
+ }
+ });
+ };
+ reader.onerror = (err) => {
+ reject(err);
+ };
+ reader.readAsDataURL(blob);
+ // #endif
+ // #ifndef APP-PLUS
+ reject(new Error('非APP环境'));
+ // #endif
+ });
+};
+
+// APP环境:使用本地文件预览
+const createAppPopup = (filePath, fileName) => {
+ // #ifdef APP-PLUS
+ if (popupInstance) {
+ popupInstance.close();
+ popupInstance = null;
+ }
+
+ const popupId = 'pdf_preview_' + Date.now();
+
+ const html = `
+
+
+