소스 검색

调试官方阅读插件

shenwu 4 일 전
부모
커밋
16acddb388
4개의 변경된 파일110개의 추가작업 그리고 5개의 파일을 삭제
  1. 6 1
      src/app.config.ts
  2. 64 3
      src/app.tsx
  3. 1 1
      src/components/PupPetry/BookBox/BookboxRowMiddle.tsx
  4. 39 0
      小说插件使用手册.md

+ 6 - 1
src/app.config.ts

@@ -54,7 +54,12 @@ export default {
   "plugins": {
     "novel-plugin": {
       "version": "latest",
-      "provider": "wx293c4b6097a8a4d0"
+      "provider": "wx293c4b6097a8a4d0",
+      "genericsImplementation": {
+        "novel": {
+         
+        }
+      }
     },
     "contactPlugin": {
       "version": "1.4.3",

+ 64 - 3
src/app.tsx

@@ -15,12 +15,9 @@ import { initApp, setApp } from './config'
 import './interceptor'
 import api from './server/index'
 import { getShortBookInfo } from './server/book/short'
-import { getUserInfo } from './server/wx/login'
 // 引入兼容性工具
 import { getAccountInfoSync } from './utils/compatibility'
 import { bookrackShrotAddOrRemove } from './server/bookrack'
-import { View } from '@tarojs/components'
-import { getPage } from './server/index/index'
 //引入官方小说阅读插件
 const novelPlugin = Taro.requirePlugin('novel-plugin')
 
@@ -60,6 +57,7 @@ class App extends Component {
     if (customParams) {
       try {
         customParams = JSON.parse(decodeURIComponent(customParams));
+        console.log("customParams", customParams)
       } catch (e) {
         console.error('解析失败', e);
       }
@@ -70,6 +68,7 @@ class App extends Component {
         bookshelfStatus: 1
       })
     }
+
     // 默认设置目录状态
     novelManager.setContents({
       contents: [
@@ -89,8 +88,70 @@ class App extends Component {
     })
     // 监听用户行为事件
     novelManager.onUserTriggerEvent(res => {
+      /**
+       * 判断res.event_id为以下哪个事件
+       * start_read	开始阅读书籍时
+        leave_readpage	用户离开阅读页时
+        read_error	内容发生报错时
+        change_chapter	切换章节时
+        change_page	翻页时
+        open_menu	唤起一级菜单时
+        close_menu	轻触收起一级菜单时
+        open_content	唤起目录页时
+        close_content	收起目录页时
+        open_setting	唤起设置面板
+        close_setting	收起设置面板
+        expose_introduction	书籍介绍页曝光
+        click_addbookshelf	点击“加入书架”
+        click_startread	点击“开始阅读”
+        leave_introduction	离开当前页
+        get_chapter	拉取章节数据结束
+        page_show	插件页 onShow 生命周期
+        page_hide	插件页 onHide 生命周期
+        page_unload	插件页 onUnload 生命周期
+        change_fontsize	调整字号时
+        change_flipmode	调整翻页模式时
+        change_background	调整背景色或夜间模式时
+        ad_error	广告报错时
+        close_ad	关闭广告时
+        leave_chapter	离开章节时
+        click_listen	点击听书按钮时
+        audio_start	音频播放
+        audio_pause	音频暂停
+        audio_error	音频报错
+        audio_stop	停止播放音频
+        audio_end	音频自然播放结束
+       * */
+      switch (res.event_id) {
+        case "start_read":
+          console.log("开始阅读")
+          break;
+        case "get_chapter":
+          // 此处做用户阅读记录
+          console.log("拉取章节数据结束",res)
+          break;
+        case "click_startread":
+          console.log("点击了开始阅读")
+          break;
+        case "change_chapter":
 
+          console.log("切换章节")
+          break;
+        case "change_page":
+          console.log("翻页",res)
+          break;
+        case "leave_readpage":
+          console.log("离开阅读页")
+          break;
+        case "close_ad":
+          console.log("关闭广告")
+          break;
+        case  "ad_error":
+          console.log("广告报错")
+          break;
+      }
     })
+    //点击加入书架操作
     novelManager.onClickBookshelf((res) => {
       if (res.bookshelfStatus == 0) {
         console.log("点击了加入书架")

+ 1 - 1
src/components/PupPetry/BookBox/BookboxRowMiddle.tsx

@@ -18,7 +18,7 @@ export interface BookboxRowMiddleProps {
     vipFree: boolean
 }
 function BookboxRowMiddle(props: BookboxRowMiddleProps) {
-    const { bookName, picUrl, bookDesc, labelInfoList, authorName, bookId, vipFree, wordCount, bookStatus } = props
+    const { bookName, picUrl, bookDesc, labelInfoList, authorName, bookId, vipFree } = props
     const click = () => {
         getBookInfo(bookId).then((res: { data: any, code: any }) => {
             if (res?.data?.code == 200) {

+ 39 - 0
小说插件使用手册.md

@@ -0,0 +1,39 @@
+## 官方文档地址 https://developers.weixin.qq.com/miniprogram/dev/platform-capabilities/industry/novel.html#%E4%BB%8B%E7%BB%8D
+## 跳转插件页
+插件页的路径为 plugin-private://wx293c4b6097a8a4d0/pages/novel/index?bookId=xxx,该路径可以当成普通页面路径进行使用,通过 navigateTo 或 redirectTo 等方法进行跳转。
+```
+wx.redirectTo({
+  url: 'plugin-private://wx293c4b6097a8a4d0/pages/novel/index?bookId=xxx'
+})
+bookId	是	书籍 id
+customServerParams	否	透传到服务器的参数,因为是在 path 上,所以如果含有特殊字符,需自行 encode,防止解析出错
+chapterIndex	否	跳转章节下标(从 0 开始)
+paragraphIndex	否	跳转段落下标,默认 0(从 0 开始)
+fontSize	否	指定默认字体大小(0 - 9 从小到大)
+turnPageWay	否	指定默认翻页方式:TURN_PAGE_WAY_SWIPE - 覆盖翻页;TURN_PAGE_WAY_MOVE - 平移翻页;TURN_PAGE_WAY_SCROLL - 上下翻页
+backgroundConfigIndex	否	指定默认背景色序号,默认为 1(可传入值 1 - 5)
+isNightMode	否	指定默认是否夜间模式,传入 1 则表示默认为夜间模式
+blockUnpaidScroll	否	传入值为 1 时,滑动到未解锁章节会阻塞住,用户无法往下滑动;传入值为 0 时则不做阻塞;默认值为 1
+disableAutoShowChargeDialog	否	传入值为 0 时,进入未解锁章节时会自动拉起付费弹窗;传入值为 1 时则关闭此特性;默认值为 0
+showListenButton	否	是否显示听书按钮,传入值为 1 时则显示听书按钮;默认为 0,即不显示
+listenForFree	否	传入值为 1 时表示全书可免费听;传入值为 0 时表示在听书时遇到未解锁内容时会自动停止;默认值为 0
+recommendMode	否	传入值为 1 时显示读后推荐列表;传入值为 2 时显示读后推荐沉浸模式;默认值为 1
+注意:
+bookId 是书籍 id,创建作品后会返回,详情可参考小说作品管理接口文档[https://developers.weixin.qq.com/miniprogram/dev/platform-capabilities/industry/novel-api.html]
+chapterIndex 和 paragraphIndex 用于强制跳转到指定章节和段落;用户的阅读进度由阅读器自行保存,无需接入方维护。(跳过封面页面直接进入小说)
+fontSize 参数用于修改默认字体大小,若用户已经设置过字体大小,则该参数无效。turnPageWay 参数同理。
+如果当前书籍的音频未生成,就算传入 showListenButton 也不会显示听书按钮。
+
+```
+
+## 点击小说直接进入阅读跳过封面
+### 要点
+    1.需要chapterIndex章节下标,默认用户未读是为0第一章,需要按用户阅读记录从后端获取
+    2.用户点击书籍想跳过封面需要传入chapterIndex参数直接跳转到指定章节阅读
+    3.不传入chapterIndex,默认进入小说封面页面,但是官方阅读器会记录用户上次阅读到的章节和段落。
+    4.想跳过封面页面,需每次记录用户阅读到第几章保存到后端服务,用户点击跳转书籍时需要拼入章节下标参数
+```
+wx.redirectTo({
+  url: 'plugin-private://wx293c4b6097a8a4d0/pages/novel/index?bookId=xxx&chapterIndex=xxx'
+})
+```