App.vue 5.0 KB

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