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个工具函数相关推荐

  1. 亲历H5移动端游戏微信支付接入及那些坑(一)——支付方式与坑

    最近项目进入中后期,开始接入支付.要求是使用微信支付,呵呵,好笑的是不知老板从哪里听来的,居然和我说只要是熟手,接个微信支付两小时搞定,我只能再次呵呵.先不说支付处理逻辑,而且公司本来也没现成的接入模 ...

  2. html分享微信qq等,h5移动端调用微信好友,朋友圈,QQ好友,QQ空间等APP分享功能...

    这个主要在项目中要实现的功能,现在的手机浏览器基本也都含有分享功能,但有的手机浏览器就没有分享微信好友,朋友圈等选项,虽然微信内置X5含有此功能,但不同的手机终端分享选项又不一样,因本人还是比较喜欢老 ...

  3. 亲历H5移动端游戏微信支付接入及那些坑(二)——获取Openid和授权

    第一篇中将一些坑说明,那么这篇开始正式进入接入步骤.具体的参数说明,我不会列出,毕竟微信官方文档都有,我想大家都看的懂,而且这接口也有可能微信会变动,所以不列出来,也是不想引起大家的误解,接入步骤只起 ...

  4. 数字转字符函数_C语言常用的几个工具函数

    1.字符串转十六进制 代码实现: void StrToHex(char *pbDest, char *pbSrc, int nLen){ char h1,h2; char s1,s2; int i;f ...

  5. c语言复杂函数转换,详解C语言常用的一些转换工具函数.pdf

    详详解解C语语言言常常用用的的一一些些转转换换工工具具函函数数 1..字字符符串串转转十十六六进进制制 代码实现: void StrToHex(char *pbDest, char *pbSrc, i ...

  6. 前端程序员项目里常用的utils.js工具函数

    前言:一般来说,放在utils里为全局的工具函数,包括时间,token,封装的网络请求 时间工具: 对于时间来说,我们有轻量的 Moment.js 中文网 不想增加项目依赖,就自己写函数 JavaSc ...

  7. H5 移动端 钉钉微应用 调用微信内置地图

    H5 移动端 调用微信内置地图 通过调用后台接口获取微信签名 打开微信的内置地图 判断是否是微信的内置浏览器 实现逻辑: 我是钉钉微应用,有直接分享好友的链接 生成一个链接分享到微信好友,然后在微信调 ...

  8. 前端使用微信sdk上传图片的坑,及万千种方法比较实用的一种,亲测有效

    vue 公众端使用微信sdk上传图片大坑 第一个坑 第二个坑 第一个坑 使用微信sdk拿到的图片并没有base64的前缀 所以我们需要自己加 iSrc = 'data:image/jpeg;base6 ...

  9. h5微信本地调试 vue_vueh5中使用微信sdk

    微信官方sdk教程 安装vue 微信sdk 使用NPM安装,不会的百度学npm install jweixin-module --save 创建一个wxsdk.js 文件// 引入微信sdk var  ...

最新文章

  1. diskgenius linux版_纯净版Windows10系统安装详细教程
  2. Qt Creator建立和运行
  3. bios免电池补丁_补丁和权限 处理器漏洞多大这样看
  4. IOS6+ 下,使用position:sticky实现粘性布局
  5. angular之两种路由
  6. 我为什么选择Angular 2?
  7. 【每日一题】7月1日题目精讲 借教室
  8. 计算机英语反思总结,计算机在英语教学中辅助作用的反思
  9. firebase使用_如何开始使用Firebase Hosting
  10. MySQL常用数据类型以及内置函数
  11. 计算机集成项目经理 培训,计算机信息系统集成项目经理培训总结.doc
  12. java中Field中的方法,解析Java中的Field类和Method类
  13. dft中X(K)的k的含义
  14. 【学习笔记】SQL数据库
  15. 微信第三方平台【六】微信开放平台帐号管理
  16. 自定义函数使用GridSearchCV参数寻优
  17. 计算几何2- 判断两线段是否相交
  18. 【蓝牙Mesh笔记 ①】ESP32-C3 模组上实现天猫精灵蓝牙 BLE Mesh AliGenie 接入,无需WiFi 连接也可以实现天猫精灵语音控制。
  19. 使用.net core ABP和Angular模板构建博客管理系统(实现博客列表页面)
  20. 潜入维基解密机房 更新中文视频+高清图

热门文章

  1. 内向不是缺点:关于性格内向者的10个误解
  2. 1077. Kuchiguse (20)
  3. python线程异常中断_中断线程
  4. android log输出keycode,如何在android中获取keyCode
  5. A a = new A()
  6. 自动驾驶(四十四)---------主动安全功能简介
  7. chrome浏览器扩展安装
  8. 计算机音乐谱真的爱你,真的爱你-BEYOND-和弦谱-《弹吧》官网tan8.com-和弦谱大全,学吉他,秀吉他...
  9. 【毕业设计】基于springboot + vue微信小程序商城
  10. RSA证书算法实现及其应用