微信小程序开发(三)----- 云开发案例
1、发送请求

2、云函数中发送请求,例子request
- https://github.com/request/request-promise 创建云函数movielist,右键在终端打开,输入 npm install --save request
- 然后输入 npm install --save request-promise,当前云函数的package.json文件依赖为

- 使用
- 在云函数movielist的index.js中引入包
// 云函数入口文件
const cloud = require('wx-server-sdk') cloud.init() var rp = require('request-promise'); // 云函数入口函数
exports.main = async(event, context) => {
// ES6字符串模板的形式
return rp(`http://api.douban.com/v2/movie/in_theaters?apikey=0df993c66c0c636e29ecbb5344252a4a&start=${event.start}&count=${event.count}`)
.then(function(res) {
// 显示在云函数的服务端
console.log(res);
return res;
})
.catch(function(err) {
console.error(err);
});
} - 以请求豆瓣电影列表为例子,在movie的js页面,刚进入页面获取数据,因此onLoad生命周期的代码为
/**
* 生命周期函数--监听页面加载
*/
onLoad: function (options) {
this.getMovieList();
},
/**
* 获取电影列表的数据
*/
getMovieList() {
// 加载框
wx.showLoading({
title: '加载中',
})
wx.cloud.callFunction({
name: 'movielist',
data: {
start: this.data.movieList.length,
count:
},
success: res => {
this.setData({
// 对返回的字符串进行解析,并且每次返回的数据应该拼接在原有数据的后面
movieList: this.data.movieList.concat(JSON.parse(res.result).subjects)
});
// 隐藏加载框
wx: wx.hideLoading()
},
fail: error => {
wx.showToast({
title: '获取电影列表数据失败',
})
}
})
}, - 滚动条滚动到底部时异步的加载10条数据,在生命周期onReachBottom中再次发送请求
/**
* 页面上拉触底事件的处理函数
*/
onReachBottom: function () {
this.getMovieList()
}
- 在云函数movielist的index.js中引入包
- 跳转详情页面演示
- 点击按钮切换详情
<button class="movie-comment" catchtap="onCatchSkipToComment" data-movieid="{{item.id}}">评价</button> - movie.js
/**
* 跳转评价的详情页面
*/
onCatchSkipToComment(event) {
// 跳转新页面,保留上一个页面
wx.navigateTo({
url: `../comment/comment?movieid=${event.target.dataset.movieid}`,
})
}, - 在comment的js里面
/**
* 页面的初始数据
*/
data: {
movieDetail : {}
}, /**
* 生命周期函数--监听页面加载
*/
onLoad: function (options) {
// 获取上一个页面传过来的参数
this.getMovieDetail(options.movieid)
},
/**
* 获取电影详情信息
*/
getMovieDetail(movieid) {
wx.showLoading({
title: '加载中',
})
wx.cloud.callFunction({
name: 'getDetail',
data: {
movieid: movieid
},
success: res => {
this.setData({
movieDetail : JSON.parse(res.result)
})
console.log(this.data.movieDetail)
wx.hideLoading()
},
fail: error => {
console.log(error)
}
})
}, - 在云函数getDetail的index中
// 云函数入口文件
const cloud = require('wx-server-sdk') cloud.init() var rp = require('request-promise'); // 云函数入口函数
exports.main = async (event, context) => {
return rp(`http://api.douban.com/v2/movie/subject/${event.movieid}?apikey=0df993c66c0c636e29ecbb5344252a4a`)
.then(function (res) {
// 显示在云函数的服务端
console.log(res);
return res;
})
.catch(function (err) {
console.error(err);
});
}
- 点击按钮切换详情
- 获取用户信息
- WXML
<!-- 第一种方式 -->
<view class='profile'>
<view class="profile-img">
<open-data type="userAvatarUrl"></open-data>
</view>
<open-data type="userNickName" class="profile-name"></open-data>
</view>
<!-- 第二种方式 -->
<button open-type="getUserInfo" bindgetuserinfo="getUserInfo">获取用户信息</button> - 微信小程序提供了开放能力open-data,同时button组件内的type属性也支持开放能力
- WXML
- 小程序的审核上线
- 由于后端采用小程序的云开发(免费),因此不需要购买相对应的服务器;
- 设置体验版:点击微信开发工具的 “上传” 按钮,上传到腾讯云;
- 可以到微信公众平台版本管理中提交审核,审核通过后成为线上版本
3、遇到的问题
- 电影详情中高度模糊(毛玻璃)效果
- WXML
<view class='detail-container' style='background: url({{movieDetail.images.large}})'></view>
<view class='detail-mask'></view> - WXSS
.detail-container {
height: 400rpx;
filter: blur(40rpx);
opacity: 0.4;
} .detail-mask {
position: absolute;
width: %;
height: 400rpx;
background-color: #;
top: ;
left: ;
z-index: -;
}
- WXML
微信小程序开发(三)----- 云开发案例的更多相关文章
- 微信小程序中使用云开发获取openid
微信小程序获取openid 新建一个微信小程序项目 注意要注册一个自己的小程序账号,并有属于自己的appid 点击云开发按钮,自行填入开发环境名称 打开app.js,找到依赖环境 修改为刚才设置的环境 ...
- 微信小程序--简约风博客小程序(基于云开发 - 全开源)
微信小程序--简约风博客小程序(基于云开发 - 全开源) 项目启动纯属突发奇想,想看看博客小程序,例如wehalo博客小程序,但是感觉自建平台还要浪费自己的服务器算力,还没有访问量,省省吧. 本着白嫖 ...
- 微信小程序购物商城系统开发系列-工具篇
微信小程序开放公测以来,一夜之间在各种技术社区中就火起来啦.对于它 估计大家都不陌生了,对于它未来的价值就不再赘述,简单一句话:可以把小程序简单理解为一个新的操作系统.新的生态,未来大部分应用场景都将 ...
- 微信小程序购物商城系统开发系列
微信小程序购物商城系统开发系列 微信小程序开放公测以来,一夜之间在各种技术社区中就火起来啦.对于它 估计大家都不陌生了,对于它未来的价值就不再赘述,简单一句话:可以把小程序简单理解为一个新的操作系统. ...
- 从微信小程序到鸿蒙js开发【11】——页面路由
目录: 1.router.push()&wx.navigateTo() 2.router.replace()&wx.redirectTo() 3.router.back()&w ...
- 微信小程序版博客——开发汇总总结(附源码)
花了点时间陆陆续续,拼拼凑凑将我的小程序版博客搭建完了,这里做个简单的分享和总结. 整体效果 对于博客来说功能页面不是很多,且有些限制于后端服务(基于ghost博客提供的服务),相关样式可以参考截图或 ...
- 微信小程序购物商城系统开发系列-目录结构
上一篇我们简单介绍了一下微信小程序的IDE(微信小程序购物商城系统开发系列-工具篇),相信大家都已经蠢蠢欲试建立一个自己的小程序,去完成一个独立的商城网站. 先别着急我们一步步来,先尝试下写一个自己的 ...
- 从微信小程序到鸿蒙js开发【12】——storage缓存&自动登录
鸿蒙入门指南,小白速来!从萌新到高手,怎样快速掌握鸿蒙开发?[课程入口] 正文: 在应用开发时,我们常需要将一些数据缓存到本地,以提升用户体验.比如在一个电商的app中,如果希望用户登录成功后,下次打 ...
- 从微信小程序到鸿蒙js开发【13】——list加载更多&回到顶部
鸿蒙入门指南,小白速来!从萌新到高手,怎样快速掌握鸿蒙开发?[课程入口] 目录: 1.list加载更多 2.list回到顶部 3.<从微信小程序到鸿蒙js开发>系列文章合集 1.list加 ...
- 从微信小程序到鸿蒙js开发【15】——JS调用Java
鸿蒙入门指南,小白速来!0基础学习路线分享,高效学习方法,重点答疑解惑--->[课程入口] 目录:1.新建一个Service Ability2.完善代码逻辑3.JS端远程调用4.<从微信小 ...
随机推荐
- 模态框 modal.js
模态框经过了优化,更加灵活,以弹出对话框的形式出现,具有最小和最实用的功能集. 不支持模态框重叠 千万不要在一个模态框上重叠另一个模态框.要想同时支持多个模态框,需要自己写额外的代码来实现. 模态框的 ...
- Discuz升级
1.下载论坛程序文件 2.备份数据库 3.建立文件夹 old,旧程序除了 data , config, uc_client, uc_server 目录以外的程序移动进入 old目录中4. 上传 u ...
- qt5---QMessageBox消息框
需要 #include <QMessageBox> QMessageBox::StandardButton sb; sb=QMessageBox::critical(this," ...
- CAP拾遗
概念 在一个分布式系统(指互相连接并共享数据的节点的集合)中,当涉及读写操作时,只能保证一致性.可用性.分区容错性三者中的两个,另外一个必须被牺牲 Consistency 对某个指定的客户端来说,读操 ...
- QT:QSS ID选择器无效
我正在学习使用Qt样式表给我的应用程序添加不同的样式.我上网看了看Qt文档,上面说你可以使用一种ID选择器,它可以把主题应用到某些对象上.我就是这样实现这个特性的: QPushButton#butto ...
- 在Windows QT下使用ZeroMQ
zeroMQ作为一个嵌入式消息队列系统,以其轻便灵活的使用方式,极为适合应用程序分布式通讯处理, 或者是一种有效的代替常规saocket通讯的方法. 1)下载地址:http://zeromq.org/ ...
- Selenium 日期控件处理
在WEB测试时,我们会碰到需要输入日期的情况,如果输入框能直接输入,那最好不过了.但是很多时候,输入框是不可输入的,必须的点击日期控件才行. 现在就来聊聊对日期控件的两种操作方法,我们以12306网站 ...
- [CF1172E]Nauuo and ODT:Link-Cut Tree
分析 lxl大毒瘤. 感谢Ouuan等CNOIER提供了这么好的比赛. 这里只是把官方题解复述一遍,可以直接去看官方题解:点我. 考虑将问题转化为对于每个颜色,求出没有经过这个颜色的节点的路径有多少条 ...
- 经典DP模型--回文词--IOI2000
[问题描述]回文词是一种对称的字符串--也就是说, 一个回文词, 从左到右读和从右到左读得到的结果是一样的. 任意给定一个字符串, 通过插入若干字符, 都可以变成一个回文词. 你的任务是写一个程序, ...
- 「WC 2007」剪刀石头布
题目链接 戳我 \(Solution\) 直接求很明显不太好求,于是考虑不构成剪刀石头布的情况. 我们现在假设一个人\(i\)赢了\(x\)场,那么就会有\(\frac{x*(x-1)}{2}\) 我 ...