xy 1 سال پیش
والد
کامیت
acb36f3e5f
6فایلهای تغییر یافته به همراه207 افزوده شده و 26 حذف شده
  1. 101 2
      xs-app/App.vue
  2. 1 0
      xs-app/data/data.ts
  3. 75 6
      xs-app/framework/tools.ts
  4. 12 1
      xs-app/manifest.json
  5. 18 17
      xs-app/pages/bookshelf/bookshelf.vue
  6. BIN
      xs-app/static/imgs/.DS_Store

+ 101 - 2
xs-app/App.vue

@@ -1,9 +1,22 @@
 <script>
-    import { tools } from './framework/tools'
+    import { tools } from './framework/tools';
+
+	import { UserStatus } from './stores/userStatusManager';
+	const novelPlugin = requirePlugin('novel-plugin');
 	export default {
 		onLaunch: function() {
 			console.log('App Launch')
-			tools.requestLogin(()=>{})
+			tools.requestLogin(()=>{})
+		   // 订阅小程序初始化成功的事件
+		   
+		      novelPlugin.setLoggerConfig({
+		         info:false,
+		         debug: false,
+		         log:false,
+		         warn:true,
+		         error:true})
+			novelPlugin.onPageLoad(onNovelPluginLoad);
+			console.log("novelPlugin",novelPlugin)
 		},
 		onShow: function() {
 			console.log('App Show')
@@ -11,6 +24,92 @@
 		onHide: function() {
 			console.log('App Hide')
 		}
+	}
+	
+	function onNovelPluginLoad(data) {
+	  // data.id 句柄 用来获取novelManager实例
+	  const novelManager = novelPlugin.getNovelManager(data.id);
+				 console.log(novelManager.getPluginInfo())
+	  // getId() 返回当前manager对应的Id(即句柄)
+	  console.log('id:', novelManager.getId());
+
+	  // getBookId() 返回当前manager对应的bookId
+	  console.log('bookId:', novelManager.getBookId());
+	  
+	  // novelManager.onUserTriggerEvent((params)=>{
+		 //  console.log("params",params)
+	  // })
+	  
+	  novelManager.setClosePluginInfo({  //关闭后跳转的界面
+		  url: '/pages/bookstore/bookstore',
+		  mode: 'switchTab'  // 'redirectTo'
+	  })
+	  // console.log('novelManager:', novelManager);
+	  // setBookshelfStatus(Object params)
+	  // params.bookshelfStatus number类型 0 代表用户取消添加书架 1 代表用户添加书架
+	  // 因为是否添加书架的情况阅读器并不记录 所以需要接入方在接入的时候设置书架的状态
+	  // 默认情况该值为0 即未添加
+	  // 注:此处直接设置了未添加的状态 但实际情况应是接入方去拉取存储于接入方的用户数据
+	  var book_id = tools.getBookIdByWxBookId(novelManager.getBookId())
+	  tools.checkBookOnBookshelf(book_id,(is_on)=>{
+		  novelManager.setBookshelfStatus({
+		    bookshelfStatus: is_on==true?1:0,
+		  });
+	  })
+	
+
+	  // 监听用户点击书架的事件
+	  // params.bookshelfStatus number类型 0 代表用户取消添加书架 1 代表用户添加书架
+	  novelManager.onClickBookshelf((params) => {
+		// 此处逻辑应是接入方将用户设置的数据存储下来
+		// 之后将书架状态改变
+		// 如果接入方不去主动设置该状态 那么用户点击加入书架后 则不会有任何响应
+		// novelManager.setBookshelfStatus({
+		//   bookshelfStatus: params.bookshelfStatus === 0 ? 1 : 0,
+		// });
+			var book_id = tools.getBookIdByWxBookId(novelManager.getBookId())
+			console.log("book_id:",book_id)
+			if(params.bookshelfStatus === 0 ){
+				tools.addBookshelf(UserStatus().getUserSelectBook(),(is_on)=>{
+					novelManager.setBookshelfStatus({
+							bookshelfStatus: 1,
+					});
+				})
+			}else{
+				tools.deleteBookshelf([book_id],()=>{
+					novelManager.setBookshelfStatus({
+							bookshelfStatus: 0,
+					});
+				})
+			}
+	
+	  });
+
+	  // setContents 设置目录信息(Object params)
+	  // params.contents Array类型 是一个代表各个章节信息的数组
+	  // params.contents[i].index  number类型 代表章节下标(章节下标从0开始)
+	  // params.contents[i].status number类型 代表章节状态(0 免费章节 1 未付费章节 2 已付费章节 其余值非法)
+	  // 下方示例代表:第一章免费,第二张已付费,第三章未付费
+	  // 注1: 该接口设置的数据仅影响插件页目录的UI表现,插件页去拉取章节数据的时候还是会依赖后台返回的状态。
+	  // 注2: 该接口可以反复调用,因为某些章节数据量过大,如需要分页拉取的时候,该特性或许有用
+	  // 注3: 实际开发中,此数据应从接入方后台拉取
+	  // 注4: 若不设置此数据,则免费章节、未付费章节与已付费章节在目录UI上无法分辨,虽不会影响实际付费的逻辑,但还是强烈建议设置此数据
+	 //  novelManager.setContents({
+		// contents: [
+		//   {
+		// 	index: 0,
+		// 	status: 0,
+		//   },
+		//   {
+		// 	index: 1,
+		// 	status: 2,
+		//   },
+		//   {
+		// 	index: 2,
+		// 	status: 1,
+		//   },
+		// ],
+	 //  });
 	}
 </script>
 

+ 1 - 0
xs-app/data/data.ts

@@ -67,6 +67,7 @@ export class chapter_list_item{
 
 export class book_item_data{
 	book_id:number; //书籍ID
+	wx_book_id:string; //书籍ID
 	book_name:string; //书籍名称
 	author_name:string; //作者
 	book_cover:string; //封面

+ 75 - 6
xs-app/framework/tools.ts

@@ -96,13 +96,39 @@ export class tools {
 	// 进入书详情
 	public static gotoBookdetails(book_id:number, cb:Function=null) {
 		if(book_id) {
-			uni.navigateTo({
-				url:'/pages/bookdetails/bookdetails',
-				success: (res) => {
-					res.eventChannel.emit('data',{'book_id':book_id})
-					cb && cb()					
+			if(tools.getCurPlatform()==config.Platform.WEIXIN){
+				var wx_bookId = tools.getWxBookId(book_id)
+				if(wx_bookId==null){
+					return util.showModal("错误","错误")
 				}
-			})
+				util.showLoading()
+				let url = config.url_confg.Static.book_details(book_id)
+				http.StaticRequest(url,(err=null,data=null)=>{
+					util.hideLoading()
+					if(!err&&data) {
+						if(data.code==config.url_confg.StatesCode.SUCCESS){
+							var book_data = new book_item_data()
+							book_data = data.content
+							book_data.wx_book_id = wx_bookId
+							UserStatus().updateUserSelectBook(book_data)
+							wx.redirectTo({
+							  url: `plugin-private://wx293c4b6097a8a4d0/pages/novel/index?bookId=${wx_bookId}`
+							});
+						}
+					}
+				})
+				
+			
+			}else{
+				uni.navigateTo({
+					url:'/pages/bookdetails/bookdetails',
+					success: (res) => {
+						res.eventChannel.emit('data',{'book_id':book_id})
+						cb && cb()					
+					}
+				})
+			}		
+		
 		} else {
 			log.Error('书详情id错误')
 		}
@@ -416,4 +442,47 @@ export class tools {
 		}
 		return config.read_config.colorBgResList[index].off_res
 	}
+	
+	public static getWxBookId(book_id:number){
+		var temp = [
+		{"book_id": 1, "wx_book_id": "A1HcfuuvhA6S7Nqy3f97nTixyb"},
+		{"book_id": 2, "wx_book_id": "A1Hcfuwb1iw9PakEYJz8wGWN4V"},
+		{"book_id": 3, "wx_book_id": "A1HcfuuvKqNdTuMD9y9bTAinvh"},
+		{"book_id": 4, "wx_book_id": "A1HcfuyDVgAqSRAiaWsYRcGttu"},
+		{"book_id": 5, "wx_book_id": "A1Hcfuzo33e6KTd9VCpmFc23L9"},
+		{"book_id": 6, "wx_book_id": "A1Hcfuzp91oWFt7RAGoLFV2ZUq"},  
+		{"book_id": 7, "wx_book_id": "A1HcfuzqEyxvCJbgqLmuFN35dX"},
+		{"book_id": 8, "wx_book_id": "A1Hcfv2QnMSB5M47k2j85MnE4m"},
+		{"book_id": 9, "wx_book_id": "A1Hcfv2RtKbb1mYPR6hh5EnkDT"},
+		{"book_id": 10, "wx_book_id": "A1Hcfv2SzHkzxC2f6AgG57oGN9"}
+		];
+		for (var i = 0; i < temp.length; i++) {
+			if(temp[i].book_id==book_id){
+				return temp[i].wx_book_id
+			}
+		}
+		return null
+	}
+	
+	public static getBookIdByWxBookId(wx_book_id:string){
+		var temp = [
+		{"book_id": 1, "wx_book_id": "A1HcfuuvhA6S7Nqy3f97nTixyb"},
+		{"book_id": 2, "wx_book_id": "A1Hcfuwb1iw9PakEYJz8wGWN4V"},
+		{"book_id": 3, "wx_book_id": "A1HcfuuvKqNdTuMD9y9bTAinvh"},
+		{"book_id": 4, "wx_book_id": "A1HcfuyDVgAqSRAiaWsYRcGttu"},
+		{"book_id": 5, "wx_book_id": "A1Hcfuzo33e6KTd9VCpmFc23L9"},
+		{"book_id": 6, "wx_book_id": "A1Hcfuzp91oWFt7RAGoLFV2ZUq"},  
+		{"book_id": 7, "wx_book_id": "A1HcfuzqEyxvCJbgqLmuFN35dX"},
+		{"book_id": 8, "wx_book_id": "A1Hcfv2QnMSB5M47k2j85MnE4m"},
+		{"book_id": 9, "wx_book_id": "A1Hcfv2RtKbb1mYPR6hh5EnkDT"},
+		{"book_id": 10, "wx_book_id": "A1Hcfv2SzHkzxC2f6AgG57oGN9"}
+		];
+		
+		for (var i = 0; i < temp.length; i++) {
+			if(temp[i].wx_book_id==wx_book_id){
+				return temp[i].book_id
+			}
+		}
+		return 1
+	}
 }

+ 12 - 1
xs-app/manifest.json

@@ -54,7 +54,18 @@
         "setting" : {
             "urlCheck" : false
         },
-        "usingComponents" : true
+        "usingComponents" : true,
+         "plugins": {
+            "novel-plugin": {
+              "version": "latest",
+              "provider": "wx293c4b6097a8a4d0",
+              "genericsImplementation": {
+                "novel": {
+                  // "charge-dialog": "./components/charge-dialog/charge-dialog"
+                }
+              }
+            }
+        }
     },
     "mp-alipay" : {
         "usingComponents" : true

+ 18 - 17
xs-app/pages/bookshelf/bookshelf.vue

@@ -171,23 +171,24 @@
 	
 	function gotoReadBook(book_data:book_item_data, index:number) {
 		// console.log('book_data=',book_data,'index=',index)
-		tools.gotoRead(book_data)
-		if(tab_current.value==0) {
-			// 书架
-			if(index>0) {
-				data_book_list.value.splice(index,1)
-				data_book_list.value.unshift(book_data)
-				tools.resetSortBookshelf(data_book_list.value)
-				uni.pageScrollTo({ scrollTop:0 })
-			}
-		} else {
-			//阅读历史
-			if(index>0) {
-				data_read_history_list.value.splice(index,1)
-				data_read_history_list.value.unshift(book_data)
-				uni.pageScrollTo({ scrollTop:0 })
-			}
-		}
+		return tools.gotoBookdetails(book_data.book_id)
+		// tools.gotoRead(book_data)
+		// if(tab_current.value==0) {
+		// 	// 书架
+		// 	if(index>0) {
+		// 		data_book_list.value.splice(index,1)
+		// 		data_book_list.value.unshift(book_data)
+		// 		tools.resetSortBookshelf(data_book_list.value)
+		// 		uni.pageScrollTo({ scrollTop:0 })
+		// 	}
+		// } else {
+		// 	//阅读历史
+		// 	if(index>0) {
+		// 		data_read_history_list.value.splice(index,1)
+		// 		data_read_history_list.value.unshift(book_data)
+		// 		uni.pageScrollTo({ scrollTop:0 })
+		// 	}
+		// }
 	}
 	
 </script>

BIN
xs-app/static/imgs/.DS_Store