小程序书架功能的实现代码是什么
Admin 2022-11-19 群英技术资讯 1316 次浏览
在这篇文章中,我们来学习一下“小程序书架功能的实现代码是什么”的相关知识,下文有详细的讲解,易于大家学习和理解,有需要的朋友可以借鉴参考,下面就请大家跟着小编的思路一起来学习一下吧。具体内容如下
实现书架的功能,点击之后可以看pdf
1.设定点击事件
2.在点击事件里面
2.1下载 wx.downloadFile({
2.2打开 wx.openDocument({
效果图

点开之后是pdf
app.js
// app.js
App({
onLaunch() {
// 展示本地存储能力
const logs = wx.getStorageSync('logs') || []
logs.unshift(Date.now())
wx.setStorageSync('logs', logs)
// 登录
wx.login({
success: res => {
// 发送 res.code 到后台换取 openId, sessionKey, unionId
}
})
},
globalData: {
userInfo: null,
nginxadd:"这边换成内网穿透的地址/"
}
})
app.json
{
"pages": [
"pages/start/start",
"pages/music/music",
"pages/videoinfo/videoinfo",
"pages/main/main",
"pages/readbook/readbook",
"pages/one/one",
"pages/index/index",
"pages/logs/logs",
"pages/playmusic/playmusic"
],
"window": {
"backgroundTextStyle": "light",
"navigationBarBackgroundColor": "#fff",
"navigationBarTitleText": "Weixin",
"navigationBarTextStyle": "black"
},
"style": "v2",
"sitemapLocation": "sitemap.json",
"tabBar": {
"selectedColor": "#8a8a8a",
"list": [
{
"pagePath": "pages/music/music",
"text": "音乐",
"iconPath": "pages/images/music1.png",
"selectedIconPath": "pages/images/music2.png"
},
{
"pagePath": "pages/videoinfo/videoinfo",
"text": "视频",
"iconPath": "pages/images/sp1.png",
"selectedIconPath": "pages/images/sp2.png"
},
{
"pagePath": "pages/readbook/readbook",
"text": "书架",
"iconPath": "pages/images/rb1.png",
"selectedIconPath": "pages/images/rb2.png"
}
]
}
}
readbook.js
// pages/books/books.js
let app=getApp()
Page({
/**
* 页面的初始数据
*/
data: {
books1:[{"bookimg":app.globalData.nginxadd+"img/d0.jpg","bookname":"python","booklink":app.globalData.nginxadd+"text/a1.pdf"},
{"bookimg":app.globalData.nginxadd+"img/d1.jpg","bookname":"java","booklink":app.globalData.nginxadd+"text/a1.pdf"},
{"bookimg":app.globalData.nginxadd+"img/d2.jpg","bookname":"dart","booklink":app.globalData.nginxadd+"text/a1.pdf"},
{"bookimg":app.globalData.nginxadd+"img/a1.jpg","bookname":"javascript","booklink":app.globalData.nginxadd+"text/a1.pdf"}
],
books2:[{"bookimg":app.globalData.nginxadd+"img/f0.jpg","bookname":"c#","booklink":app.globalData.nginxadd+"text/a1.pdf"},
{"bookimg":app.globalData.nginxadd+"img/f1.jpg","bookname":"Rust","booklink":app.globalData.nginxadd+"text/a1.pdf"},
{"bookimg":app.globalData.nginxadd+"img/f2.jpg","bookname":"Lua","booklink":app.globalData.nginxadd+"text/a1.pdf"},
{"bookimg":app.globalData.nginxadd+"img/a1.jpg","bookname":"javascript","booklink":app.globalData.nginxadd+"text/a1.pdf"}
],
books3:[{"bookimg":app.globalData.nginxadd+"img/g0.jpg","bookname":"javascript","booklink":app.globalData.nginxadd+"text/a1.pdf"},
{"bookimg":app.globalData.nginxadd+"img/g1.jpg","bookname":"c++","booklink":app.globalData.nginxadd+"text/a1.pdf"},
{"bookimg":app.globalData.nginxadd+"img/g2.jpg","bookname":"Go","booklink":app.globalData.nginxadd+"text/a1.pdf"},
{"bookimg":app.globalData.nginxadd+"img/a1.jpg","bookname":"javascript","booklink":app.globalData.nginxadd+"text/a1.pdf"}
]
},
openbook(event)
{
wx.showLoading({
title: '正在打开文档',
})
let link=event.currentTarget.dataset.link;
console.log(link);
//1.下载
wx.downloadFile({
url: link,
success:(resp)=>
{
let path=resp.tempFilePath;
console.log(path);
//2.打开
wx.openDocument({
filePath: path,
success:(resp)=>
{
wx.hideLoading({
success: (res) => {},
});
console.log("打开文档成功")
}
})
}
})
},
/**
* 生命周期函数--监听页面加载
*/
onLoad: function (options) {
},
/**
* 生命周期函数--监听页面初次渲染完成
*/
onReady: function () {
},
/**
* 生命周期函数--监听页面显示
*/
onShow: function () {
},
/**
* 生命周期函数--监听页面隐藏
*/
onHide: function () {
},
/**
* 生命周期函数--监听页面卸载
*/
onUnload: function () {
},
/**
* 页面相关事件处理函数--监听用户下拉动作
*/
onPullDownRefresh: function () {
},
/**
* 页面上拉触底事件的处理函数
*/
onReachBottom: function () {
},
/**
* 用户点击右上角分享
*/
onShareAppMessage: function () {
}
})
readbook.wxml
<!--pages/books/books.wxml-->
<view class="booktopview">
<scroll-view class="scrollview" scroll-x="true">
<block wx:for="{{books1}}">
<view class="bookview" bindtap="openbook" data-link="{{item.booklink}}">
<view class="innerview">
<view class="imgview">
<image src="{{item.bookimg}}" class="cimg"></image>
</view>
<view class="txtview">
{{item.bookname}}
</view>
</view>
</view>
</block>
</scroll-view>
</view>
<view class="booktopview">
<scroll-view class="scrollview" scroll-x="true">
<block wx:for="{{books2}}">
<view class="bookview" bindtap="openbook" data-link="{{item.booklink}}">
<view class="innerview">
<view class="imgview">
<image src="{{item.bookimg}}" class="cimg"></image>
</view>
<view class="txtview">
{{item.bookname}}
</view>
</view>
</view>
</block>
</scroll-view>
</view>
<view class="booktopview">
<scroll-view class="scrollview" scroll-x="true">
<block wx:for="{{books3}}">
<view class="bookview" bindtap="openbook" data-link="{{item.booklink}}">
<view class="innerview">
<view class="imgview">
<image src="{{item.bookimg}}" class="cimg"></image>
</view>
<view class="txtview">
{{item.bookname}}
</view>
</view>
</view>
</block>
</scroll-view>
</view>
readbook.wxss
/* pages/books/books.wxss */
.booktopview{
width: 100%;
height: 30vh;
border-top: 2px solid black;
border-bottom: 2px solid black;
display: flex;
align-items: center;
}
.scrollview{
width: 100%;
height: 80%;
/**border:1px solid green;**/
white-space: nowrap;
}
.bookview{
width: 30%;
height: 98%;
border:1px solid brown;
margin-left: 10px;
display: inline-block;
}
.innerview{
width: 100%;
height: 100%;
display: flex;
flex-direction: column;
justify-content: center;
align-items: center;
}
.imgview{
width: 80%;
height: 75%;
/**border:1px solid black;**/
}
.txtview{
width: 90%;
height: 25%;
/** border:1px solid black;**/
display: flex;
justify-content: center;
align-items: center;
}
.cimg{
width: 100%;
height: 100%;
}
免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:mmqy2019@163.com进行举报,并提供相关证据,查实之后,将立刻删除涉嫌侵权内容。
猜你喜欢
这篇文章给大家分享的是用JS实现简单的省市联动效果的内容,小编觉得挺实用的,因此分享给大家做个参考,接下来一起跟随小编看看吧。
本文将深入 Node 异步和事件循环的底层实现和执行机制。聊聊Node 为什么要使用异步来作为核心编程模型呢?如何实现异步?以及基于事件循环的异步编程模型。
JavaScript实现网页带动画返回顶部的方法详解 服务器由阿里云换到了腾讯云,我的代码之前一直都是托管在git上的,但是搬家的时候,可能是着急了,之前有些新加的文件没有托管到git上,所以,就丢了. 不过无所谓了,可以重新写嘛. 之前博客的回到顶部功能是请之前的一位前端的同事帮忙写的,这次打算自己尝试一下. 返回顶部无非就是锚点. 第一个版本: <body style="height:2000px;"> <div id="topAnchor"></div> <a ...
本文主要介绍了vue实现两列水平时间轴的示例代码,文中通过示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
在vue开发中,难免遇到各种表单校验,下面这篇文章主要给大家介绍了关于vue表单验证rules及validator验证器使用的相关资料,文中通过示例代码介绍的非常详细,需要的朋友可以参考下
成为群英会员,开启智能安全云计算之旅
立即注册关注或联系群英网络
7x24小时售前:400-678-4567
7x24小时售后:0668-2555666
24小时QQ客服
群英微信公众号
CNNIC域名投诉举报处理平台
服务电话:010-58813000
服务邮箱:service@cnnic.cn
投诉与建议:0668-2555555
Copyright © QY Network Company Ltd. All Rights Reserved. 2003-2020 群英 版权所有
增值电信经营许可证 : B1.B2-20140078 ICP核准(ICP备案)粤ICP备09006778号 域名注册商资质 粤 D3.1-20240008