微信小程序常用的方法(留着用)
function zero_fill_hex(num, digits) {
let s = num.toString(16);
while (s.length < digits)
s = "0" + s;
return s;
}
/**
* rgba 转 16进制
* @param rgb
* @returns {*}
*/
function rgb2hex(rgb) {
if (!rgb) {
return rgb;
}
if (rgb.charAt(0) === '#')
return rgb;
const ds = rgb.split(/\D+/);
const decimal = Number(ds[1]) * 65536 + Number(ds[2]) * 256 + Number(ds[3]);
return "#" + zero_fill_hex(decimal, 6);
}
/**
*
* @returns {string}
*/
function guid() {
return 'xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx'.replace(/[xy]/g, function (c) {
const r = Math.random() * 16 | 0, v = c === 'x' ? r : (r & 0x3 | 0x8);
return v.toString(16);
});
}
/**
* 图标转换
* @param icon
* @returns {*} 图标原字符串
*/
function convertIcon(icon) {
if (!icon)
return icon;
return icon.slice(5);
}
/**
* url
* @param url
* @param name
* @param value
* @returns {*}
*/
function urlUpdateParams(url, name, value) {
let r = url;
if (r != null && r !== 'undefined' && r !== "") {
value = encodeURIComponent(value);
const reg = new RegExp("(^|)" + name + "=([^&]*)(|$)");
const tmp = name + "=" + value;
if (url.match(reg) != null) {
r = url.replace(eval(reg), tmp);
} else {
if (url.match("[\?]")) {
r = url + "&" + tmp;
} else {
r = url + "?" + tmp;
}
}
}
return r;
}
/**
* 格式化时间
* @param timestamp
* @returns {string}
*/
function timestampToTime(timestamp) {
const date = new Date(timestamp * 1000);//时间戳为10位需*1000,时间戳为13位的话不需乘1000
const Y = date.getFullYear() + '-';
const M = (date.getMonth() + 1 < 10 ? '0' + (date.getMonth() + 1) : date.getMonth() + 1) + '-';
const D = date.getDate() + ' ';
const h = date.getHours() + ':';
const m = date.getMinutes() + ':';
const s = date.getSeconds();
return Y + M + D + h + m + s;
}
/**
* 跳转到新页面 并生产缓存key
* @param data
*/
function navigateToCacheData(data) {
const that = data.that;
let url = data.url;
const cacheKey = "_cacheKey_" + (data.type || "");
const key = "temp_cache_" + guid();
that.setState({
[cacheKey]: key
});
url = urlUpdateParams(url, "key", key);
Taro.navigateTo({
url: url
});
}
/**
* 返回上一个页面并且传回数据
* @param that
* @param data
*/
function navigateBackCacheData(that, data) {
const key = that.$router.params.key;
if (key) {
Taro.setStorage({
key: key,
data: data
}).then(() => {
Taro.navigateBack({});
});
} else {
Taro.navigateBack({});
}
}
/**
* 获取关闭的页面传回的数据
* @param data
* @param fn
*/
function getPageBackCacheData(data, fn) {
const that = data.that;
const cacheKey = "_cacheKey_" + (data.type || "");
const _cacheKey_ = that.state[cacheKey];
if (_cacheKey_) {
Taro.getStorage({
key: _cacheKey_
}).then((res) => {
fn && fn(res.data);
}).catch(() => {
});
Taro.removeStorage({
key: _cacheKey_
})
}
}
// 弹窗
function showModal(data, fn) {
Taro.showModal({
title: data.title,
content: data.content || "",
confirmText: data.confirmText || "确认",
cancelText: data.cancelText || "取消",
confirmColor: "#2297e5",
success: function (t) {
if (!t.confirm) {
return
}
fn && fn();
}
});
}
// 装换带小数的钱
function convertMoney(couponVal) {
if (parseInt(couponVal) === parseFloat(couponVal)) {
return parseFloat(couponVal);
}
return parseFloat(couponVal);
}
// 打开新页面
function navigateTo(data, parName, json) {
if (!data) {
console.error(data);
return;
}
if (parName && json) {
// 添加参数
json = JSON.stringify(json);
json = encodeURIComponent(json);
data.url = urlUpdateParams(data.url, parName, json);
}
Taro.navigateTo(data).catch((res) => {
if (res.errMsg.indexOf("limit") !== -1) {
// 超出限制关闭所有重新打开
reLaunch(data)
} else {
Taro.showToast({
title: "打开失败",
icon: "none"
});
}
})
}
// 延迟加载
function reLaunch(data) {
Taro.reLaunch(data).catch(() => {
// 跳转失败
Taro.showLoading({
title: '加载中',
});
setTimeout(function () {
Taro.hideLoading();
Taro.reLaunch(data)
}, 2000);
}).then(() => {
Taro.hideLoading();
});
}
微信小程序常用的方法(留着用)的更多相关文章
- 微信小程序数据请求方法wx.request小测试
微信小程序数据请求方法 wx.request wxml文件: <view> <textarea value="{{textdata}}"/> </vi ...
- 微信小程序开发系列教程三:微信小程序的调试方法
微信小程序开发系列教程 微信小程序开发系列一:微信小程序的申请和开发环境的搭建 微信小程序开发系列二:微信小程序的视图设计 这个教程的前两篇文章,介绍了如何用下图所示的微信开发者工具自动生成一个Hel ...
- 微信小程序常用样式汇总
本文系转载: 原文作者:chenzheng8975 原文地址:https://www.cnblogs.com/chenzheng8975/p/9605186.html 微信小程序常用样式汇总 小程序特 ...
- 微信小程序最新授权方法,getUserInfo
20180511微信小程序正式关闭原先getUserInfo的逻辑 不再允许自动弹出授权框. 方法一: index.wxml(准备一个用于给用户授权的页面,我这里直接用了一个全屏按钮) <vie ...
- 微信小程序——wxParse使用方法
wxParse是一个微信小程序富文本解析组件.现在小程序里面自带了一个<rich-text>组件也能解析富文本,但是表现不尽人意.所以我还是采用的wxParse来解析富文本的. wxPar ...
- 微信小程序节点查询方法:wx.createSelectorQuery()的使用场景与注意事项
小程序由于内置于微信,这使得它有了得天独厚的宣传和使用优势,本着学习的心态,我在官网上看了一遍开发文档,大致得出小程序框架的设计模式与使用注意事项(重点来了,其实开发文档某些方面叙述的并不仔细,甚至存 ...
- 微信小程序特殊字符转义方法——&转义&等等
在我编写公司小程序的过程中,有一次在网页端添加了一张图片,结果在小程序端访问失败了,究其原因,竟然是因为该图片名称中有一个“&”符号,网页端添加后,自动转义成了“&”存储到了数据库.当 ...
- 微信小程序--数据共享与方法共享
目录 全局数据共享 Mobox npm安装及其注意事项 小程序对 npm 的支持与限制 npm 依赖包的安装与使用 Mobox 1. 全局数据共享 2. 小程序中的全局数据共享方案 3. 使用mobx ...
- 微信小程序~生命周期方法详解
生命周期是指一个小程序从创建到销毁的一系列过程 在小程序中 ,通过App()来注册一个小程序 ,通过Page()来注册一个页面 先来看一张小程序项目结构 从上图可以看出,根目录下面有包含了app.js ...
随机推荐
- HTML每日学习笔记(2)
7.16.2019 1.html表单:用于得到用户不同类型的输入 <form>元素定义表单: <form> First name:<br> <input ty ...
- 杂谈 | 增量思维v.s.存量思维
无挂碍故,无有恐怖,远离颠倒梦想,究竟涅槃. ——<心经> 声明在前,本文并不是要论述“存量思维”是不好的, 而是整理某些场景下需要摒弃“存量思维”,或者提倡“增量思维”. 1 ...
- Caused by: java.lang.IllegalArgumentException
Caused by: java.lang.IllegalArgumentException 是因为jdk较高而项目需要的是低版本的问题 1.将idea或idea里的语言级别调到适合自己项目的版本比如安 ...
- MybatisPlus SQL 打印控制台
#applicaton.yml 配置 mybatis-plus: configuration: # 是否将sql打印到控制面板(该配置会将sql语句和查询的结果都打印到控制台) log-impl: o ...
- .NET Core技术研究-HttpContext访问的正确姿势
将ASP.NET升级到ASP.NET Core之后,相信大家都会遇到HttpContext.Current无法使用的问题.这也是我们迁移ASP.NET Core必须解决的问题. 本文我们详细讨论一下, ...
- JVM年轻代,老年代,永久代详解
前言 最近被问到了这个问题,解释的不是很清晰,有一些概念略微模糊,在此进行整理和记录,分享给大家.本篇文章主要讲解内存区域的年轻代,老年代和永久代,略微提及一些垃圾回收算法,下面是正文. 堆整体 堆主 ...
- 你能在泰坦尼克号上活下来吗?Kaggle的经典挑战
Kaggle Kaggle是一个数据科学家共享数据.交换思想和比赛的平台.人们通常认为Kaggle不适合初学者,或者它学习路线较为坎坷. 没有错.它们确实给那些像你我一样刚刚起步的人带来了挑战.作为一 ...
- PHP7内核(四):生命周期之开始前的躁动
上一章我们对PHP的源码目录结构有了初步了解,本章我们继续从生命周期的维度对PHP进行剖析. 一.概览 生命周期是什么呢?你可以把它看作执行过程,PHP的生命周期也就是它从开始执行到结束执行的过程. ...
- 区间dp暂时的理解
因为刚刚看了区间dp,所以写一下对区间dp的理解. 例题: 石子归并 51Nod - 1021 看了一篇博客,觉得他说得比较容易理解,所以再次重复一遍: 假如你是上帝,已经知道了1~n堆石子的最优解, ...
- 记录一个不同的流媒体网站实现方法,和用Python爬虫爬它的坑
今天找到一片电影,想把它下载下来. 先开Networks工具分析一下: 初步分析发现,视频加载时会拉取TS格式的文件,推测这是一个m3u8的索引,记录着几百段TS文件,这样方便快进时加载. 但是实际分 ...