App.vue 5.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148
  1. <script>
  2. import { config } from './config/config';
  3. import { sdkUtil } from './framework/sdkUtil';
  4. import { tools } from './framework/tools';
  5. import { UserStatus } from './stores/userStatusManager';
  6. // #ifdef MP-WEIXIN
  7. const novelPlugin = requirePlugin('novel-plugin');
  8. // #endif
  9. export default {
  10. onLaunch: function() {
  11. console.log('App Launch')
  12. tools.requestLogin(()=>{
  13. // tools.requestRechargeOrderBuy(config.pay_type.WEI_XIN,1,(order_id,data)=>{
  14. // console.log("order_id",order_id)
  15. // console.log("data",data)
  16. // sdkUtil.showPayment({
  17. // timeStamp:data.time_stamp,
  18. // nonceStr:data.nonce_str,
  19. // package:`prepay_id=${data.prepay_id}`,
  20. // paySign:data.pay_sign,
  21. // signType:data.sign_type},()=>{
  22. // })
  23. // })
  24. })
  25. // 订阅小程序初始化成功的事件
  26. if(tools.getCurPlatform()==config.Platform.WEIXIN) {
  27. // 订阅小程序初始化成功的事件
  28. novelPlugin.setLoggerConfig({
  29. info:false,
  30. debug: false,
  31. log:false,
  32. warn:true,
  33. error:true})
  34. novelPlugin.onPageLoad(onNovelPluginLoad);
  35. console.log("novelPlugin",novelPlugin)
  36. }
  37. },
  38. onShow: function() {
  39. console.log('App Show')
  40. },
  41. onHide: function() {
  42. console.log('App Hide')
  43. }
  44. }
  45. function onNovelPluginLoad(data) {
  46. // data.id 句柄 用来获取novelManager实例
  47. const novelManager = novelPlugin.getNovelManager(data.id);
  48. console.log(novelManager.getPluginInfo())
  49. // getId() 返回当前manager对应的Id(即句柄)
  50. console.log('id:', novelManager.getId());
  51. // getBookId() 返回当前manager对应的bookId
  52. console.log('bookId:', novelManager.getBookId());
  53. // novelManager.onUserTriggerEvent((params)=>{
  54. // console.log("params",params)
  55. // })
  56. novelManager.setClosePluginInfo({ //关闭后跳转的界面
  57. url: '/pages/bookstore/bookstore',
  58. mode: 'switchTab' // 'redirectTo'
  59. })
  60. // console.log('novelManager:', novelManager);
  61. // setBookshelfStatus(Object params)
  62. // params.bookshelfStatus number类型 0 代表用户取消添加书架 1 代表用户添加书架
  63. // 因为是否添加书架的情况阅读器并不记录 所以需要接入方在接入的时候设置书架的状态
  64. // 默认情况该值为0 即未添加
  65. // 注:此处直接设置了未添加的状态 但实际情况应是接入方去拉取存储于接入方的用户数据
  66. tools.getBookIdByWxBookId(novelManager.getBookId(),(book_id)=>{
  67. tools.checkBookOnBookshelf(book_id,(is_on)=>{
  68. novelManager.setBookshelfStatus({
  69. bookshelfStatus: is_on==true?1:0,
  70. });
  71. })
  72. })
  73. // var wx_book_id = novelManager.getBookId()
  74. // 监听用户点击书架的事件
  75. // params.bookshelfStatus number类型 0 代表用户取消添加书架 1 代表用户添加书架
  76. novelManager.onClickBookshelf((params) => {
  77. // 此处逻辑应是接入方将用户设置的数据存储下来
  78. // 之后将书架状态改变
  79. // 如果接入方不去主动设置该状态 那么用户点击加入书架后 则不会有任何响应
  80. // novelManager.setBookshelfStatus({
  81. // bookshelfStatus: params.bookshelfStatus === 0 ? 1 : 0,
  82. // });
  83. tools.getBookIdByWxBookId(novelManager.getBookId(),(book_id)=>{
  84. console.log("book_id:",book_id)
  85. if(params.bookshelfStatus === 0 ){
  86. tools.addBookshelf(UserStatus().getUserSelectBook(),(is_on)=>{
  87. novelManager.setBookshelfStatus({
  88. bookshelfStatus: 1,
  89. });
  90. })
  91. }else{
  92. tools.deleteBookshelf([book_id],()=>{
  93. novelManager.setBookshelfStatus({
  94. bookshelfStatus: 0,
  95. });
  96. })
  97. }
  98. })
  99. });
  100. novelManager.setCustomServerParams({
  101. customServerParams:JSON.stringify({applet_id:config.applet_id})
  102. })
  103. // setContents 设置目录信息(Object params)
  104. // params.contents Array类型 是一个代表各个章节信息的数组
  105. // params.contents[i].index number类型 代表章节下标(章节下标从0开始)
  106. // params.contents[i].status number类型 代表章节状态(0 免费章节 1 未付费章节 2 已付费章节 其余值非法)
  107. // 下方示例代表:第一章免费,第二张已付费,第三章未付费
  108. // 注1: 该接口设置的数据仅影响插件页目录的UI表现,插件页去拉取章节数据的时候还是会依赖后台返回的状态。
  109. // 注2: 该接口可以反复调用,因为某些章节数据量过大,如需要分页拉取的时候,该特性或许有用
  110. // 注3: 实际开发中,此数据应从接入方后台拉取
  111. // 注4: 若不设置此数据,则免费章节、未付费章节与已付费章节在目录UI上无法分辨,虽不会影响实际付费的逻辑,但还是强烈建议设置此数据
  112. // novelManager.setContents({
  113. // contents: [
  114. // {
  115. // index: 0,
  116. // status: 0,
  117. // },
  118. // {
  119. // index: 1,
  120. // status: 2,
  121. // },
  122. // {
  123. // index: 2,
  124. // status: 1,
  125. // },
  126. // ],
  127. // });
  128. novelManager.onUserTriggerEvent((params)=>{
  129. let chapter_id = params.chapter_index+1
  130. let book_data = UserStatus().getUserSelectBook()
  131. if(book_data!=null){
  132. book_data.start_read_chapter_id = chapter_id
  133. tools.updateReadHistory(book_data)
  134. }
  135. })
  136. }
  137. </script>
  138. <style>
  139. /*每个页面公共css */
  140. </style>