From 50ca1ad0d141d7dc0ddf29b2d3051b85ceff8f56 Mon Sep 17 00:00:00 2001
From: 闫增涛 <1829501689@qq.com>
Date: 星期二, 05 十一月 2024 10:21:05 +0800
Subject: [PATCH] pdf阅读优化

---
 packageBookService/pages/components/webView/index.js |  146 ++++++++++++++++++++++++++++++++++++++++++------
 1 files changed, 126 insertions(+), 20 deletions(-)

diff --git a/packageBookService/pages/components/webView/index.js b/packageBookService/pages/components/webView/index.js
index 452b945..2a1ac76 100644
--- a/packageBookService/pages/components/webView/index.js
+++ b/packageBookService/pages/components/webView/index.js
@@ -1,5 +1,8 @@
 // packageBookService/pages/components/webView/index.js
 const app = getApp()
+import {
+  loginInfo
+} from '../../../../assets/js/login';
 Page({
 
   /**
@@ -10,12 +13,18 @@
     link: false,
     epubObj: null,
     currentPage: '',
+    pdfList: [],
+    skeletonLoding: true,
+    startTime: "", //杩涘叆椤甸潰褰撳墠鏃堕棿
+    pauseTime: 0 //鏆傚仠鏃堕棿
   },
 
   /**
    * 鐢熷懡鍛ㄦ湡鍑芥暟--鐩戝惉椤甸潰鍔犺浇
    */
   onLoad(options) {
+    console.log(options)
+
     if (options && options.link) {
       this.setData({
         src: decodeURIComponent(options.link),
@@ -29,9 +38,21 @@
       if (options) {
         wx.setNavigationBarTitle({
           title: options.fileName,
+          skeletonLoding: true
         })
-        this.getProgress(options)
       }
+    }
+    const token = wx.getStorageSync(app.config.tokenKey)
+    if (!token) {
+      loginInfo(app, (data) => {
+        if (data) {
+          this.getProgress(options)
+        } else {
+          this.getProgress(options)
+        }
+      })
+    } else {
+      this.getProgress(options)
     }
   },
 
@@ -44,21 +65,60 @@
   },
 
   setWebViewSrc: function (data) {
-    var url = app.config.epubUrl +
-      "?md5=" +
-      data.md5 +
-      "&bookName=" +
-      data.fileName +
-      "&url=" + app.config.requestCtx +
-      "&token=" +
-      wx.getStorageSync(app.config.tokenKey) +
-      "&recordLocation=" +
-      this.data.currentPage
-    this.setData({
-      src: url
-    })
-  },
+    let that = this;
+    var url = "";
+    if (data.fileType == 'epub') {
+      if (data.bookBuy == "true") {
+        url = app.config.epubUrl +
+          "?md5=" +
+          data.md5 +
+          "&bookName=" +
+          data.fileName +
+          "&url=" + app.config.requestCtx +
+          "&token=" +
+          wx.getStorageSync(app.config.tokenKey) +
+          "&recordLocation=" +
+          this.data.currentPage
+      } else {
+        url = app.config.epubUrl +
+          "?md5=" +
+          data.md5 +
+          "&bookName=" +
+          data.fileName +
+          "&url=" + app.config.requestCtx +
+          "&token=" +
+          wx.getStorageSync(app.config.tokenKey) +
+          "&recordLocation=" +
+          that.data.currentPage + "&isPreview=true&freeEpubPage=" + data.freePage
+      }
+      that.setData({
+        src: url,
+        skeletonLoding: false,
+      })
+    } else {
+      that.setData({
+        navigationBarTitleText: data.fileName
+      })
+      app.MG.file.getPdfInfo({
+        md5: data.md5
+      }).then((res) => {
+        let pageCount = data.bookBuy == "true" ? res.totalPages : Number(data.freePage)
+        console.log(pageCount, "connt")
+        if (pageCount) {
+          let list = [];
+          for (let i = 0; i < pageCount; i++) {
+            const src = app.config.requestCtx + '/file/GetPdfPageImage?md5=' + data.md5 + '&index=' + (i + 1) + '&dpi=300'
+            list.push(src)
+          }
+          that.setData({
+            pdfList: list,
+            skeletonLoding: false,
+          })
+        }
+      })
+    }
 
+  },
 
   // 鑾峰彇UserKey
   getProgress: function (dataObj) {
@@ -96,9 +156,9 @@
             domain: "bookReadProgress",
             key: this.data.epubObj.md5,
             value: JSON.stringify(data),
-          },],
+          }, ],
         })
-        .then((res) => { });
+        .then((res) => {});
     }
   },
 
@@ -108,7 +168,7 @@
       percentage,
       type
     } =
-      e.detail.data[0];
+    e.detail.data[0];
     if (type == "progress" && type != "backDetail") {
       this.setProgress({
         page: currentLocation,
@@ -132,21 +192,62 @@
    * 鐢熷懡鍛ㄦ湡鍑芥暟--鐩戝惉椤甸潰鏄剧ず
    */
   onShow() {
-
+    this.setData({
+      startTime: Date.now()
+    })
   },
 
   /**
    * 鐢熷懡鍛ㄦ湡鍑芥暟--鐩戝惉椤甸潰闅愯棌
    */
   onHide() {
-
+    this.setData({
+      pauseTime: Date.now()
+    })
+    if (wx.getStorageSync(app.config.tokenKey) && this.data.epubObj.bookBuy) {
+      let duration = this.data.pauseTime - this.data.startTime
+      this.count(duration)
+    }
   },
 
   /**
    * 鐢熷懡鍛ㄦ湡鍑芥暟--鐩戝惉椤甸潰鍗歌浇
    */
   onUnload() {
+    this.setData({
+      pauseTime: Date.now()
+    })
+    if (wx.getStorageSync(app.config.tokenKey) && this.data.epubObj.bookBuy == 'true') {
+      let duration = this.data.pauseTime - this.data.startTime
+      this.count(duration)
+    }
+  },
 
+  count(timeStr) {
+    const data = {
+      appRefCode: app.config.appRefCode,
+      type: 'LearningTime', //缁熻绫诲瀷--闃呰鏃堕暱
+      data: timeStr + '', //缁熻鍐呭--鏃堕暱姣
+      event: 'LearningTime',
+      sysType: 'App'
+    }
+    //闃呰鍟嗗搧鐨刬d
+    if (this.data.epubObj.bookId) {
+      data.productId = this.data.epubObj.bookId
+    }
+    //闃呰璧勬簮鐨刬d
+    // if (product.cmsItemId) {
+    //   data.cmsItemId = product.cmsItemId
+    // }
+    app.MG.job.newJobWithApiNewEvent(data).then((res) => {})
+  },
+
+  //棰勮鍥剧墖锛屾斁澶ч瑙�
+  preview(event) {
+    let urls = [event.currentTarget.dataset.src]
+    wx.previewImage({
+      urls: urls // 闇�瑕侀瑙堢殑鍥剧墖http閾炬帴鍒楄〃
+    })
   },
 
   /**
@@ -162,4 +263,9 @@
   onReachBottom() {
 
   },
+  /**
+   * 鐢ㄦ埛鐐瑰嚮鍙充笂瑙掑垎浜�
+   */
+  onShareAppMessage() {},
+  onShareTimeline() {},
 })
\ No newline at end of file

--
Gitblit v1.9.1