var lsktl = {
addonVar: {
onoff_on: 1, onoff_off: 2
},
webhost: "https://e.lr12.com",
apiurl: "",
resurl: "",
appid: "",
addon_name: "ktTool",
clientInfo: {bsid: ""},
bsid_client: 0,
init: function () {
lsktl.clientInfo = wx.getSystemInfoSync();
this.apiurl = this.webhost + "/api.php/" + this.addon_name + "/";
this.resurl = this.webhost + "/static/addon/" + this.addon_name + "/";
this.clientInfo.zdinfo = wx.getSystemInfoSync();//得到系统消息
if (!lsktl.cache.get("bsid_client")) {
lsktl.cache.set("bsid_client", lsktl.uuid());
}
},
payinfo: function (order_id, options) {
if (lsktl.empty(lsktl.cache.get("openid"))) {//如果 openid是空的,则
wx.login({
success: function (e) {
if (e.code) {
wx.request({
method: 'POST',
header: {
'content-type': 'application/x-www-form-urlencoded'
},
data: {code: e.code},
url: lsktl.apiurl + "pub/wxapp_lginfo",
success: function (ret) {
if (0 == ret.data.errcode) {
if (!lsktl.empty(ret.data.ra.openid)) {
lsktl.cache.set("openid", ret.data.ra.openid);
lsktl.payinfo(order_id, options);//再回调
}
} else {
//即未获取 oenid
}
},
fail: function (res) {
console.info(res);
},
complete: function (res) {
}
});
}
},
fail: function (res) {
me.setData({
st_login: 0
});
},
complete: function (res) {
lsktl.loading.hide();
}
});
} else {
lsktl.loading.show();
lsktl.sendRequest({
url: "order/getpayinfo",
data: {id: order_id, paytype: "minipay", openid: lsktl.cache.get("openid")},
success: function (ret) {
lsktl.loading.hide();
if (ret.data.errcode > 0) {
wx.showToast({title: ret.data.errmsg});
return false;
}
ret.data.payinfo.success = function (ret) {
options.success(ret);
};
ret.data.payinfo.fail = function (ret) {
// options.fail(ret);
};
ret.data.payinfo.complete = function (ret) {
// options.complete || options.complete(ret);
options.complete();
};
wx.requestPayment(ret.data.payinfo);
}
});
}
},
cpage: function () {
return getCurrentPages()[getCurrentPages().length - 1];//当前页
},
empty(p1) {//判断一个对象是否为空
if (p1 == null) {
return true;
}
if (p1 == undefined) {
return true;
}
switch (typeof p1) {
case "undefined":
return true;
break;
case "object":
if (Object.keys(p1).length == 0) {
return true;
} else {
return false;
}
break;
case "number":
return p1 == 0 ? true : false;
break;
case "string":
return lsktl.trim(p1, "") == "" ? true : false;
break;
case "boolean":
return p1;
break;
default:
return true;
break;
}
return true;
},
pageshow: function () {//当面刚开始的时候,初始化一些当前页灵面的数据
var cp = lsktl.cpage();//得到当前页
cp.setData({
islogin: parseInt(lsktl.cache.get("islogin"))
});
},
url: {
format: function (url = "") {
var index = url.indexOf("?");
var options = {};
var route = url;//默认的是这个
var query = "";
if (index > 0) {//即大于
query = url.substr(index + 1);
route = url.substr(0, index);
if (query != "") {
var parts = query.split("&");
var kv;
for (var i = 0; i < parts.length; i++) {
kv = parts[i].split("=");
options[kv[0]] = kv[1];
}
}
}
route = lsktl.trim(route, "/");
var urlpath = "/" + route;
return {route: route, options: options, query: query, urlpath: urlpath};
},
get: function (url = "", key = "") {
var fa = lsktl.url.format(url);
var ra = fa.options[key];
ra = undefined ? 0 : ra;
return ra;
},
set: function (url, params = {}) {
var fa = lsktl.url.format(url);
for (var i in params) {
fa.options[i] = params[i];
}
var querystr = "";
for (var i in fa.options) {
querystr += i + "=" + fa.options[i] + "&";
}
querystr = lsktl.trim(querystr, "&");
var str = fa.urlpath + (querystr == "" ? "" : "?" + querystr);
return str;
}
},
gourl: function (params) {
// return false;
if (typeof params == "string") {//即如果是string
params = {
url: params
};
}
if (params.url.indexOf("pages/site/index") >= 0) {//即首页
wx.reLaunch({
url: "/" + lsktl.trim(params.url, '/')
});
return false;
}
var fa = lsktl.url.format(params.url);
//以上步骤已经得到了要跳转的url的route和options部分
var cpage = lsktl.cpage();//得到当前页面
var pagelist = getCurrentPages();
var init = 0;
var inIndex = -1;
var pagelen = pagelist.length;//得到长度
for (var i = 0; i < pagelen; i++) {
if (lsktl.trim(pagelist[i].route) == fa.route) {//即在里面
init = 1;
inIndex = i;//即所在的索引值
}
}
if (pagelen >= 9) {//如果大于9,则重新启动一下,
wx.reLaunch({
url: params.url
});
return false;//返回false
}
if (lsktl.trim(cpage.route) == fa.route && lsktl.empty(cpage.options) && lsktl.empty(fa.options)) {//相同的,并且没有options
return false;
}
if (init == 1 && lsktl.empty(pagelist[inIndex].options) && lsktl.empty(fa.options)) {//即在里面
wx.navigateBack({
delta: inIndex
});
return false;
}
wx.navigateTo({
url: params.url
});//跳转
},
back: function (delta = 1) {
wx.navigateBack({
delta: delta
});
},
sendRequest: function (params = {}) {
var pagelist = getCurrentPages();
var cpage = pagelist[pagel
微信百度抖音小程序开发通用工具类lsktl.js源代码及api解析
需积分: 0 182 浏览量
更新于2024-03-17
收藏 5KB ZIP 举报
在微信、百度和抖音这三大主流平台上,小程序已经成为企业与用户互动的重要渠道。为了提高开发效率,开发者通常会创建一些通用的工具类库,比如"lsktl.js"。这个库提供了一系列方便实用的API,旨在帮助开发者快速解决在小程序开发过程中遇到的各种问题。
lsktl.js的核心功能在于为小程序开发提供一套标准化的解决方案,它涵盖了数据处理、网络请求、页面跳转、动画效果、时间日期处理等多个方面。下面我们将对这个工具类库的关键知识点进行深入解析:
1. **数据处理**:lsktl.js可能包含一些处理数据的方法,如深拷贝、浅拷贝、数据格式化等,这些方法可以帮助开发者更方便地管理和操作数据,避免直接操作原始数据导致的意外修改。
2. **网络请求**:在小程序中,网络请求是必不可少的,lsktl.js可能会封装了微信、百度、抖音各自的小程序API,提供统一的接口进行HTTP请求,简化异步操作,例如GET、POST等方法,同时可能还支持错误处理和请求超时设置。
3. **页面跳转**:小程序中的页面跳转管理是重要的部分,lsktl.js可能封装了各平台的导航API,提供统一的跳转方式,包括页面的跳转、返回、传递参数等功能,以确保在不同平台上的兼容性。
4. **动画效果**:为了让小程序界面更加生动,lsktl.js可能包含了一些动画相关的API,可以创建简单的过渡效果或者复杂的动画序列,让开发者无需深入了解底层实现就能实现动态效果。
5. **时间日期处理**:在处理用户交互和数据显示时,时间日期的格式化和转换常常需要,lsktl.js可能提供了一些便捷的时间日期处理函数,如日期格式化、时间戳转换等。
6. **错误捕获与日志记录**:为了便于调试和追踪问题,lsktl.js可能集成了错误捕获和日志记录功能,开发者可以通过这些工具来查看运行过程中的错误信息,从而快速定位问题。
7. **性能优化**:为了提升小程序的性能,lsktl.js可能还提供了缓存管理、资源预加载等优化手段,帮助开发者减少不必要的计算和网络请求,提高用户体验。
8. **兼容性处理**:由于微信、百度和抖音的小程序API存在差异,lsktl.js必须处理这些平台间的差异,确保在各个平台上都能稳定运行。
通过阅读和理解lsktl.js的源代码,开发者不仅可以了解其内部工作原理,还可以根据自身需求进行定制或扩展,进一步提升开发效率。对于想要深入学习小程序开发的工程师来说,lsktl.js的源码分析是一份宝贵的学习资料。
lsk9479
- 粉丝: 341
- 资源: 11
最新资源
- 微电网(两台)主从控制孤岛-并网平滑切的分析 分析了: 1.孤岛下VF控制 2.并网下PQ控制 3.孤岛下主从控制 4.孤岛到并网的平滑切控制 5.除模型外还对分布式发电与主动配电网一些常见问题做了
- 第四组二手产品.zip
- MVIMG_20241222_194113.jpg
- 基于小程序的在线疫苗预约小程序源代码(java+小程序+mysql+LW).zip
- 基于小程序的岳阳市美术馆预约平台源代码(java+小程序+mysql+LW).zip
- 基于小程序的音乐播放器小程序源代码(java+小程序+mysql+LW).zip
- 多功能知识付费源码下载实现流量互导多渠道变现+搭建教程
- 3. Kafka入门-安装与基本命令
- 基于小程序的养老院管理系统源代码(java+小程序+mysql+LW).zip
- 基于小程序的新冠抗原自测平台小程序源代码(java+小程序+mysql+LW).zip