收藏
回答

章节解锁不管用

框架类型 问题类型 API/组件名称 终端类型 微信版本 基础库版本
小程序 Bug NovelManager.setChargeWay(Object params) 微信iOS客户端 liushuanglong-dev 3.12.1

https://developers.weixin.qq.com/miniprogram/dev/platform-capabilities/industry/novel.html

NovelManager.setChargeWay(Object params)

章节解锁不管用

回答关注问题邀请回答
收藏

3 个回答

  • 灼
    2025-12-23

    你好,具体是哪里解锁不了?

    2025-12-23
    有用
    回复
  • 刘双龙
    刘双龙
    2025-12-23
     import {
       userApi
     } from './api/api';
     import {
       getOpenid,
       setOpenid,
       isLoggedIn
     } from './utils/storage.js';
    
    
     const novelPlugin = requirePlugin('novel-plugin')
     App({
       onLaunch() {
         // 监听进入插件页事件
         novelPlugin.onPageLoad(onNovelPluginLoad)
         // 展示本地存储能力
         const logs = wx.getStorageSync('logs') || []
         logs.unshift(Date.now())
         wx.setStorageSync('logs', logs)
    
    
         // 检查本地是否已存储openid
         if (isLoggedIn()) {
           const storedOpenid = getOpenid()
           console.log('已存在本地openid:', storedOpenid)
           this.globalData.openid = storedOpenid
         } else {
           // 登录
           wx.login({
             success: res => {
               console.log('获取到登录code:', res.code)
               userApi.login("wxe2fb54f7393855d4", res.code).then(data => {
                 if (data && data.openid) {
                   console.log("登录成功,openid:", data.openid)
                   // 存储openid到本地
                   setOpenid(data.openid)
                   this.globalData.openid = data.openid
                 } else {
                   console.error('登录失败,未获取到openid')
                 }
               }).catch(error => {
                 console.error('登录接口请求失败:', error)
               })
             },
             fail: err => {
               console.error('微信登录失败:', err)
             }
           })
         }
    
    
    
    
    
       },
       globalData: {
         userInfo: null,
         openid: null
       }
     })
    
    
    
    
     function onNovelPluginLoad(data) {
       // data.id - 阅读器实例 id,每个插件页对应一个阅读器实例
       const novelManager = novelPlugin.getNovelManager(data.id)
    
    
       // getId() 返回当前阅读器实例 id
       console.log('阅读器实例 id:', novelManager.getId())
    
    
       novelManager.setFullScreenComponentStatus({
        show: true,
      })
        // 设置目录状态
        novelManager.setContents({
          contents: [{
              index: 0, // 第一章
              status: 0, // 免费
            },
            {
              index: 1, // 第二章
              status: 2, // 未解锁
            },
            {
              index: 2, // 第三章
              status: 2, // 已解锁
            },
            {
             index: 3, // 第三章
             status: 2, // 已解锁
           },
           {
             index: 4, // 第三章
             status: 2, // 已解锁
           },
           {
             index: 5, // 第三章
             status: 2, // 已解锁
           },  
          ],
        })
        novelManager.setChargeWay({
          globalConfig: {
            mode: 3,
            buttonText: '解锁',
            tip: '暂不支持继续阅读',
          }
        })
        // 获取阅读器实例对应的书籍 id
        const bookId = novelManager.getBookId()
    console.log("书籍 id:",bookId)
    // 
    const PluginInfo = novelManager.getPluginInfo()
    console.log("阅读器信息:",PluginInfo)
     
    
    
    // 设置读后推荐相关配置
    novelManager.setRecommendInfo({
      homeButton: {
        url: '/pages/index/index',
        mode: 'switchTab',
      },
    })
     
     
    
    
       // 监听用户行为事件
       novelManager.onUserTriggerEvent(res => {
         console.log('onUserTriggerEvent', res.event_id, res)
       })
     }
    
    2025-12-23
    有用
    回复 2
    • 刘双龙
      刘双龙
      2025-12-23
      代码是设置的第二章开始需要解锁了,但是加载第一章时会自动解锁第二章,依次类推
      2025-12-23
      回复
    • 灼
      2025-12-23回复刘双龙
      建议重新检查下后台消息推送是否正确,阅读器前端的解锁状态都是严格按照 get_chapter 后台返回的解锁状态来的
      2025-12-23
      回复
  • 智能回答 智能回答 本次回答由AI生成
    2025-12-23
    有用
    回复
登录 后发表内容