h5移动端配合微信sdk常用的9个工具函数
h5移动端常用到的工具类函数
- 1.url参数转换成对象
- 将query参数转换层对象
- 2.将对象拼接成url参数
- 将对象拼接成query参数
- 3.根据身份证号返回年龄
- 根据身份证号返回年龄
- 4.微信功能扫一扫
- 微信功能扫一扫
- 5.获取地理位置
- 获取地理位置
- 6.微信获取设备信息
- 微信获取设备信息
- 7.微信分享到朋友圈或者qq功能
- 7.1:分享到朋友或者QQ。 需要在点击按钮之前调用jWeixin.ready(funciton(){})
- 7.2:分享到朋友或者QQ。 分享到朋友圈或者QQ空间
- 8.发送一个微信支付请求
- 发送一个微信支付请求
- 9.新页面全屏预览图片功能
- 新页面全屏预览图片功能
1.url参数转换成对象
将query参数转换层对象
/*** url参数转换成对象* @param {*} url * @returns */
function queryURLparamsRegEs6(url) {let obj = {};let reg = /([^?=&]+)=([^?=&]+)/g;url.replace(reg, (...arg) => {obj[arg[1]] = arg[2];});return obj;
}
2.将对象拼接成url参数
将对象拼接成query参数
/*** 将对象拼接成url参数* @param {*} data * @returns */
function paramFormateUrl(data) {let url = '';// 遍历data对象,取出需要的参数for (let k in data) {// 如果当前value为undefined ,则返回空字符串let value = data[k] !== undefined ? data[k] : '';// 得到参数,并且拼接参数,为下一步拼接到url后面做准备url += '&' + k + '=' + value;}// 如果url存在,则去除首字符并返回,因为主函数已经包含了'&',否则返回空串return url ? url.substring(1) : '';
}
3.根据身份证号返回年龄
根据身份证号返回年龄
/*** 根据身份证号返回年龄* @param {*} value* @param {*} lang* @returns*/function GetAge(identityCard) {console.log("identityCard",identityCard,identityCard.length);var len = (identityCard + "").length;if (len === 0) {return 0;} else {if ((len !== 15) && (len !== 18))//身份证号码只能为15位或18位其它不合法{return 0;}}var strBirthday = "";if (len === 18)//处理18位的身份证号码从号码中得到生日和性别代码{strBirthday = identityCard.substr(6, 4) + "/" + identityCard.substr(10, 2) + "/" + identityCard.substr(12, 2);}if (len === 15) {strBirthday = "19" + identityCard.substr(6, 2) + "/" + identityCard.substr(8, 2) + "/" + identityCard.substr(10, 2);}//时间字符串里,必须是“/”var birthDate = new Date(strBirthday);var nowDateTime = new Date();var age = nowDateTime.getFullYear() - birthDate.getFullYear();//再考虑月、天的因素;.getMonth()获取的是从0开始的,这里进行比较,不需要加1if (nowDateTime.getMonth() < birthDate.getMonth() || (nowDateTime.getMonth() === birthDate.getMonth() && nowDateTime.getDate() < birthDate.getDate())) {age--;}return age;
}
4.微信功能扫一扫
微信功能扫一扫
/*** 微信功能扫一扫* @param {*} params* @returns*/
// function WxReady(){
// jWeixin.ready({// })
// }
function scanCode(data) {const { needResults = "0", scanTypes = ["qrCode", "barCode"] } = data || {};return new Promise((resolve, reject) => {jWeixin.scanQRCode({desc: "scanQRCode desc",needResult: needResults, // 默认为0,扫描结果由微信处理,1则直接返回扫描结果,scanType: scanTypes, // 可以指定扫二维码还是一维码,默认二者都有success: function (res) {resolve(res);var result = res.resultStr; // 当needResult 为 1 时,扫码返回的结果console.log(result);// alert("res", JSON.stringify(res));},fail: function (err) {reject(err);},});});
}
5.获取地理位置
获取地理位置
/*** 获取地理位置*/
function location(data) {// gps坐标 'wgs84',火星坐标'gcj02'const { type = "gcj02" } = data || {};return new Promise((resolve, reject) => {jWeixin.getLocation({type: type, // 默认为wgs84的gps坐标,如果要返回直接给openLocation用的火星坐标,可传入'gcj02'success: function (res) {jWeixin.openLocation({latitude: res.latitude, // 纬度,浮点数,范围为90 ~ -90longitude: res.longitude, // 经度,浮点数,范围为180 ~ -180。name: "未知", // 位置名address: "zz", // 地址详情说明scale: 1, // 地图缩放级别,整型值,范围从1~28。默认为最大infoUrl: "www.baidu.com", // 在查看位置界面底部显示的超链接,可点击跳转});resolve();},fail: function (res) {reject(res);},});});
}
6.微信获取设备信息
微信获取设备信息
/*** 设备信息*/
function NetworkType() {return new Promise((resolve, reject) => {jWeixin.getNetworkType({success: function (res) {resolve(res.networkType); // 返回网络类型2g,3g,4g,wifi},fail: function (err) {reject(err);},});});
}
7.微信分享到朋友圈或者qq功能
7.1:分享到朋友或者QQ。 需要在点击按钮之前调用jWeixin.ready(funciton(){})
/*** 分享到朋友或者QQ。* 需要在点击按钮之前调用jWeixin.ready(funciton(){})*/
function MessageShareData(data) {const { title = "", desc = "", link = "", imgUrl = "" } = data || {};jWeixin.ready(() => {jWeixin.updateAppMessageShareData({title: title, // 分享标题desc: desc, // 分享描述link: link, // 分享链接,该链接域名或路径必须与当前页面对应的公众号JS安全域名一致imgUrl: imgUrl, // 分享图标success: function (res) {// 设置成功console.log(res);},fail: function (err) {console.log(err);},});});
}
7.2:分享到朋友或者QQ。 分享到朋友圈或者QQ空间
/*** 分享到朋友圈或者QQ空间* @param {*} data*/
function TimelineShareData(data) {const { title = "", link = "", imgUrl = "" } = data || {};jWeixin.ready(() => {jWeixin.updateTimelineShareData({title: title, // 分享标题link: link, // 分享链接,该链接域名或路径必须与当前页面对应的公众号JS安全域名一致imgUrl: imgUrl, // 分享图标success: function (res) {// 设置成功console.log(res);},});});
}
8.发送一个微信支付请求
发送一个微信支付请求
/*** 发送一个微信支付请求* @param {*} data* @returns*/
function WXPay(data) {const {timestamp,nonceStr,packages = 'prepay_id="1234567"',signType,paySign,} = data || {};return new Promise((resolve, reject) => {jWeixin.chooseWXPay({timestamp: timestamp, // 支付签名时间戳,注意微信jssdk中的所有使用timestamp字段均为小写。但最新版的支付后台生成签名使用的timeStamp字段名需大写其中的S字符nonceStr: nonceStr, // 支付签名随机串,不长于 32 位package: packages, // 统一支付接口返回的prepay_id参数值,提交格式如:prepay_id=\*\*\*)signType: signType, // 微信支付V3的传入RSA,微信支付V2的传入格式与V2统一下单的签名格式保持一致paySign: paySign, // 支付签名success: function (res) {// 支付成功后的回调函数resolve(res);},error: function (err) {reject(err);},});});
}
9.新页面全屏预览图片功能
新页面全屏预览图片功能
/*** 新页面全屏预览图片功能* @param {*} data* @returns*/
function imagePreview(data) {const { urls = [""], showmenu = true, current = urls[0] } = data || {};return new Promise((resolve, reject) => {jWeixin.previewImage({urls: urls, //需要预览的图片链接链表showmenu: showmenu, //显示长按菜单current: current, //当前显示图片的链接success: function (res) {// 成功后的回调函数resolve(res);},error: function (err) {reject(err);},});});
}
function WxgetLocalImgData() {jWeixin.chooseImage({count:1,sizeType:['original','compressed'],sourceType:['album', 'camera'],success:function(res){let localId = res.localIds[0];jWeixin.getLocalImgData({localId:localId,success: function (res) {let localData = res.localData;// if(localData.indexOf("data:image") != 0){// localData = 'data:image/jpeg;base64,' + localData// }// localData = localData.replace(/\r|\n/g,'').replace('data:image/jpg','data:image/jpeg');// _this.src = localData;console.log(res , localData);},fail: function (err) {console.log(err);},});}});
}
h5移动端配合微信sdk常用的9个工具函数相关推荐
- 亲历H5移动端游戏微信支付接入及那些坑(一)——支付方式与坑
最近项目进入中后期,开始接入支付.要求是使用微信支付,呵呵,好笑的是不知老板从哪里听来的,居然和我说只要是熟手,接个微信支付两小时搞定,我只能再次呵呵.先不说支付处理逻辑,而且公司本来也没现成的接入模 ...
- html分享微信qq等,h5移动端调用微信好友,朋友圈,QQ好友,QQ空间等APP分享功能...
这个主要在项目中要实现的功能,现在的手机浏览器基本也都含有分享功能,但有的手机浏览器就没有分享微信好友,朋友圈等选项,虽然微信内置X5含有此功能,但不同的手机终端分享选项又不一样,因本人还是比较喜欢老 ...
- 亲历H5移动端游戏微信支付接入及那些坑(二)——获取Openid和授权
第一篇中将一些坑说明,那么这篇开始正式进入接入步骤.具体的参数说明,我不会列出,毕竟微信官方文档都有,我想大家都看的懂,而且这接口也有可能微信会变动,所以不列出来,也是不想引起大家的误解,接入步骤只起 ...
- 数字转字符函数_C语言常用的几个工具函数
1.字符串转十六进制 代码实现: void StrToHex(char *pbDest, char *pbSrc, int nLen){ char h1,h2; char s1,s2; int i;f ...
- c语言复杂函数转换,详解C语言常用的一些转换工具函数.pdf
详详解解C语语言言常常用用的的一一些些转转换换工工具具函函数数 1..字字符符串串转转十十六六进进制制 代码实现: void StrToHex(char *pbDest, char *pbSrc, i ...
- 前端程序员项目里常用的utils.js工具函数
前言:一般来说,放在utils里为全局的工具函数,包括时间,token,封装的网络请求 时间工具: 对于时间来说,我们有轻量的 Moment.js 中文网 不想增加项目依赖,就自己写函数 JavaSc ...
- H5 移动端 钉钉微应用 调用微信内置地图
H5 移动端 调用微信内置地图 通过调用后台接口获取微信签名 打开微信的内置地图 判断是否是微信的内置浏览器 实现逻辑: 我是钉钉微应用,有直接分享好友的链接 生成一个链接分享到微信好友,然后在微信调 ...
- 前端使用微信sdk上传图片的坑,及万千种方法比较实用的一种,亲测有效
vue 公众端使用微信sdk上传图片大坑 第一个坑 第二个坑 第一个坑 使用微信sdk拿到的图片并没有base64的前缀 所以我们需要自己加 iSrc = 'data:image/jpeg;base6 ...
- h5微信本地调试 vue_vueh5中使用微信sdk
微信官方sdk教程 安装vue 微信sdk 使用NPM安装,不会的百度学npm install jweixin-module --save 创建一个wxsdk.js 文件// 引入微信sdk var ...
最新文章
- diskgenius linux版_纯净版Windows10系统安装详细教程
- Qt Creator建立和运行
- bios免电池补丁_补丁和权限 处理器漏洞多大这样看
- IOS6+ 下,使用position:sticky实现粘性布局
- angular之两种路由
- 我为什么选择Angular 2?
- 【每日一题】7月1日题目精讲 借教室
- 计算机英语反思总结,计算机在英语教学中辅助作用的反思
- firebase使用_如何开始使用Firebase Hosting
- MySQL常用数据类型以及内置函数
- 计算机集成项目经理 培训,计算机信息系统集成项目经理培训总结.doc
- java中Field中的方法,解析Java中的Field类和Method类
- dft中X(K)的k的含义
- 【学习笔记】SQL数据库
- 微信第三方平台【六】微信开放平台帐号管理
- 自定义函数使用GridSearchCV参数寻优
- 计算几何2- 判断两线段是否相交
- 【蓝牙Mesh笔记 ①】ESP32-C3 模组上实现天猫精灵蓝牙 BLE Mesh AliGenie 接入,无需WiFi 连接也可以实现天猫精灵语音控制。
- 使用.net core ABP和Angular模板构建博客管理系统(实现博客列表页面)
- 潜入维基解密机房 更新中文视频+高清图
热门文章
- 内向不是缺点:关于性格内向者的10个误解
- 1077. Kuchiguse (20)
- python线程异常中断_中断线程
- android log输出keycode,如何在android中获取keyCode
- A a = new A()
- 自动驾驶(四十四)---------主动安全功能简介
- chrome浏览器扩展安装
- 计算机音乐谱真的爱你,真的爱你-BEYOND-和弦谱-《弹吧》官网tan8.com-和弦谱大全,学吉他,秀吉他...
- 【毕业设计】基于springboot + vue微信小程序商城
- RSA证书算法实现及其应用