当前位置:主页 > 查看内容

微信小程序——电子书橱

发布时间:2021-08-04 00:00| 位朋友查看

简介:微信小程序——电子书橱 前言 在初步了解wx.setStorageSync(KEYDATA)wx.getStorageSync(KEY)的用法后然后我尝试写下该小程序进一步展开应用。 一、准备工作 二、实验结果 结果如下示例 三、实验代码 js部分 Page ( { data : { path : , id : , tempFilePath……

微信小程序——电子书橱


前言

在初步了解wx.setStorageSync(KEY,DATA),wx.getStorageSync(KEY)的用法后,然后我尝试写下该小程序进一步展开应用。

一、准备工作

在这里插入图片描述
在这里插入图片描述

二、实验结果

结果如下(示例):

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

三、实验代码

js部分:

Page({
  data:{
    path:'',
    id:'',
    tempFilePath:'',
    bookList:[
      {
        id:'01',
        title:'Java编程思想',
        poster:'../image/tp1.png',
        fileUrl:'http://localhost/books/book01.pdf'
      },
      {
          id:'02',
          title:'web前端框架技术',
          poster:'../image/tp2.png',
          fileUrl:'http://localhost/books/book02.pdf'
        },
        {
          id:'03',
          title:'微信小程序开发',
          poster:'../image/tp3.png',
          fileUrl:'http://localhost/books/book03.pdf'
        },
        {
          id:'04',
          title:'Node.js开发',
          poster:'../image/tp4.png',
          fileUrl:'http://localhost/books/book04.pdf'
        }
    ]//bookList数组存放数据
  },
  //封装函数(showTips,openBook,saveBook),方便调用
  showTips: function(content) {
    wx.showModal({
      title: '提醒',
      content: content,
      showCancel: false
    })
  },
  //打开图书
  openBook: function() {
    let path=this.data.path
    wx.openDocument({
      filePath: path,
      fileType:'pdf',
      success: function(res) {
        console.log('打开图书成功')
      },
      fail: function(error) {
        console.log(error);
      }
    })
  },
  //下载图书
  saveBook: function(path) {
    var that=this
    wx.downloadFile({
      url: path,
      success:function(res){
        if(res.statusCode===200){
          console.log(res)
          that.setData({
            path:res.tempFilePath
          })
        }
      }
    })
  },
  readBook: function(e) {
    var that = this
    //获取当前点击的图书id
    let id = e.currentTarget.dataset.id
    console.log('当前的id值:'+id)
    //获取当前点击的图书url地址
    let fileUrl = e.currentTarget.dataset.file
    console.log('当前的fileUrl值:'+fileUrl)
    //查看本地缓存
    let path = wx.getStorageSync(id)
    //未曾下载过
    if (path ==''){
      that.showTips('该书未下载!点击开始下载')
      //异步存储
      wx.setStorageSync(id,fileUrl)     
    }
    //之前下载过的,直接打开
    else {
      //打开图书
      wx.navigateTo({
        url: '../index1/index1',
      })
      console.log('当前path的值是:'+path)
      that.saveBook(path)
      that.openBook()
    }
  }
})

wxml部分:

<view class="demo-box">
  <view class='box' wx:for='{{bookList}}' wx:key='book{{index}}' data-file='{{item.fileUrl}}' data-id='{{item.id}}' bindtap='readBook'>
      <image src="{{item.poster}}"></image>
      <text>{{item.title}}</text>
    </view>
</view>


总结

Tips:用户在书籍未下载之前,点击书籍,弹出下载提示;初始控制台和Storage也没有存储相应数据,再次点击会进入下载页面,这时就会通过wx.setStorageSync() 会在Storage存储数据;手动返回上一页面后,再次双击,可以看到控制台path已经通过getStorageSync得到文件路径值了,相应的也可以打开网页查看里面内容!(代码功能可能并不是很完善,读者可以将其看做发布者的一个小程序案例测试,感谢阅读!)

;原文链接:https://blog.csdn.net/qq_45259178/article/details/115788933
本站部分内容转载于网络,版权归原作者所有,转载之目的在于传播更多优秀技术内容,如有侵权请联系QQ/微信:153890879删除,谢谢!

推荐图文


随机推荐