wepy 初探
此篇文章仅仅是对自身项目的一个总结,并对一些遇到的问题给出解决方法
一,安装
二,使用
wepy的文档已经写的很清晰了,遇到的问题大多在issues和wiki中也能找到,具体就不概述了,只是简单总结一下
1. 项目目录
根据wepy创建的项目,出来的目录应该是这样的,其他的我们不用考究。src里编写我们的项目代码,cmd中npm run dev(本人windwos党),项目会自动在dist文件中生成wxml等等,开发者工具中选中dist文件即可
2.开发目录
这是我src中的目录,其中components中放的是组件,pages中放的是页面,static中放的是公共文件
三,开发前问题
1.开发者工具中需关掉项目设置中的前三个选项,根据个人情况选择关闭最后一个选项
真机调试非https需打开调试模式
2.referer
小程序固定referer为https://servicewechat.com,在项目中调用不通接口的时候,去问下后端小伙子们这里有没有让你通过
四,开发
1.分享
我们只做了分享个人与群,相应业务码为1007,1008.
在app.wpy中onshow或onlaunch获取scene,具体请自行移步小程序开发文档。从分享中的进入页面,可以在app.wpy设置globaldata,在相应页面拿this.$parent.globaldata,用来判断是否分享出来页面
多嘴一句,为何要这么做,因为分享出来的子页面是没有回退按钮的
2.一些个人封装的方法,写的一般,别怼我
import wepy from 'wepy' //公共参数
const defaultData = {
deviceTime: new Date().toLocaleString() + new Date().getMilliseconds(),
updateVersion: 'V2.0'
} const wxRequest = async (_url, data, fn, errfn) => {
data = data || {} const _data = Object.assign({}, defaultData, data)
try {
await wepy.request({
method: 'POST',
header: {
'Content-Type': 'application/x-www-form-urlencoded'
},
url: _url,
data: _data
}).then((response) => {
if (response.data.code === '0') {
fn && fn(response.data)
} else {
errfn&& errfn()
}
})
} catch (e) {
console.log(e)
}
}
export {
wxRequest
}
请求数据方法:页面import,wxRequest(传参)
/**
* 提示与加载工具类
*/ export default class Tips {
constructor() {
this.isLoading = false;
}
/**
* 弹出提示框
*/ static success(title, duration = 500) {
setTimeout(() => {
wx.showToast({
title: title,
icon: "success",
mask: true,
duration: duration
});
}, 300);
if (duration > 0) {
return new Promise((resolve, reject) => {
setTimeout(() => {
resolve();
}, duration);
});
}
} /**
* 弹出确认窗口
*/
static confirm(text, fn, title = "提示") {
return new Promise((resolve, reject) => {
wx.showModal({
title: title,
content: text,
showCancel: true,
success: res => {
if (res.confirm) {
fn()
} else if (res.cancel) { }
},
fail: res => { }
});
});
} static toast(title, onHide, icon = "success") {
setTimeout(() => {
wx.showToast({
title: title,
icon: icon,
mask: true,
duration: 2000
});
}, 300); // 隐藏结束回调
if (onHide) {
setTimeout(() => {
onHide();
}, 500);
}
} /**
* 警告框
*/
static alert(title) {
wx.showToast({
title: title,
image: "../images/alert.png",
mask: true,
duration: 1500
});
} /**
* 错误框
*/ static error(title, onHide) {
wx.showToast({
title: title,
image: "../images/error.png",
mask: true,
duration: 500
});
// 隐藏结束回调
if (onHide) {
setTimeout(() => {
onHide();
}, 500);
}
} /**
* 弹出加载提示
*/
static loading(title = "加载中") {
if (Tips.isLoading) {
return;
}
Tips.isLoading = true;
wx.showLoading({
title: title,
mask: true
});
} /**
* 加载完毕
*/
static loaded() {
if (Tips.isLoading) {
Tips.isLoading = false;
wx.hideLoading();
}
} static share(title, url, desc) {
return {
title: title,
path: url,
desc: desc,
success: function(res) {
Tips.toast("分享成功");
}
};
}
} /**
* 静态变量,是否加载中
*/
Tips.isLoading = false;
弹框方法:import引入,tip.xxx即可
3.富文本解析
小程序本身并没有富文本解析,这里调用了插件wxparse,可是照它的方法在wepy中使用有有些笨重,而且还有点问题,这里提供自己借鉴前辈方法后封装的插件------传送门
你的star是对我最大的鼓励
此次写这个比较仓促,欢迎大家发现有什么问题留言给我,谢谢...
wepy 初探的更多相关文章
- 初探领域驱动设计(2)Repository在DDD中的应用
概述 上一篇我们算是粗略的介绍了一下DDD,我们提到了实体.值类型和领域服务,也稍微讲到了DDD中的分层结构.但这只能算是一个很简单的介绍,并且我们在上篇的末尾还留下了一些问题,其中大家讨论比较多的, ...
- CSharpGL(8)使用3D纹理渲染体数据 (Volume Rendering) 初探
CSharpGL(8)使用3D纹理渲染体数据 (Volume Rendering) 初探 2016-08-13 由于CSharpGL一直在更新,现在这个教程已经不适用最新的代码了.CSharpGL源码 ...
- 从273二手车的M站点初探js模块化编程
前言 这几天在看273M站点时被他们的页面交互方式所吸引,他们的首页是采用三次加载+分页的方式.也就说分为大分页和小分页两种交互.大分页就是通过分页按钮来操作,小分页是通过下拉(向下滑动)时异步加载数 ...
- JavaScript学习(一) —— 环境搭建与JavaScript初探
1.开发环境搭建 本系列教程的开发工具,我们采用HBuilder. 可以去网上下载最新的版本,然后解压一下就能直接用了.学习JavaScript,环境搭建是非常简单的,或者说,只要你有一个浏览器,一个 ...
- .NET文件并发与RabbitMQ(初探RabbitMQ)
本文版权归博客园和作者吴双本人共同所有.欢迎转载,转载和爬虫请注明原文地址:http://www.cnblogs.com/tdws/p/5860668.html 想必MQ这两个字母对于各位前辈们和老司 ...
- React Native初探
前言 很久之前就想研究React Native了,但是一直没有落地的机会,我一直认为一个技术要有落地的场景才有研究的意义,刚好最近迎来了新的APP,在可控的范围内,我们可以在上面做任何想做的事情. P ...
- 【手把手教你全文检索】Apache Lucene初探
PS: 苦学一周全文检索,由原来的搜索小白,到初次涉猎,感觉每门技术都博大精深,其中精髓亦是不可一日而语.那小博猪就简单介绍一下这一周的学习历程,仅供各位程序猿们参考,这其中不涉及任何私密话题,因此也 ...
- Key/Value之王Memcached初探:三、Memcached解决Session的分布式存储场景的应用
一.高可用的Session服务器场景简介 1.1 应用服务器的无状态特性 应用层服务器(这里一般指Web服务器)处理网站应用的业务逻辑,应用的一个最显著的特点是:应用的无状态性. PS:提到无状态特性 ...
- NoSQL初探之人人都爱Redis:(3)使用Redis作为消息队列服务场景应用案例
一.消息队列场景简介 “消息”是在两台计算机间传送的数据单位.消息可以非常简单,例如只包含文本字符串:也可以更复杂,可能包含嵌入对象.消息被发送到队列中,“消息队列”是在消息的传输过程中保存消息的容器 ...
随机推荐
- linux系统编辑神器 -vim用法大全
vim编辑器 文本编辑器,字处理器ASCII nano, sed vi: Visual Interfacevim: VI iMproved 全屏编辑器,模式化编辑器 vim模式:编辑模式(命令模式)输 ...
- Apache kafka 工作原理介绍
消息队列 消息队列技术是分布式应用间交换信息的一种技术.消息队列可驻留在内存或磁盘上, 队列存储消息直到它们被应用程序读走.通过消息队列,应用程序可独立地执行--它们不需要知道彼此的位置.或在继续执行 ...
- DataGridView显示数据库内容及更新内容到数据库
1:类Access,包含读取数据库,更新数据库方法: class Access { private OleDbConnection OleCon = null;//连接数据库 ...
- Django-基础之web框架
http协议 HTTP协议是Hyper Text Transfer Protocol(超文本传输协议)的缩写,是用于从万维网(WWW:World Wide Web )服务器传输超文本到本地浏览器的传送 ...
- webp图像批量转换软件推荐——XnConvert
XnConvert是一款简单易用的批量图像格式转换软件,其所支持图片格式有JPG.PNG.TIFF.GIF.RAW.JPEG2000.WebP.OpenEXR等等.你可以轻松的实现图像格式的转换.缩放 ...
- React Native学习(一)——搭建开发环境
第一次接触React Native,首先搭建环境,过程还算顺利,不过也遇到了些问题,这里简单记录下来.中文官网(http://reactnative.cn/docs/0.47/getting-star ...
- 用json方法来作深拷贝应该知道的一点东西!
之前写js比较多的的时候也写过深拷贝,浅拷贝,继承啥的,还有自定义的监听事件.然而过了很久都忘了. 最近在项目上用的深拷贝都是 b = JSON.parse( JSON.stringify(a) ) ...
- 一个标准的WebView示例
xml <?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android= ...
- mongodb 聚合查询
操作符介绍: $project:包含.排除.重命名和显示字段 $match:查询,需要同find()一样的参数 $limit:限制结果数量 $skip:忽略结果的数量 $sort:按照给定的字段排序结 ...
- ECJTUACM16 Winter vacation training #5 题解&源码
A------------------------------------------------------------------------------------------- 题目链接:ht ...