这是基于企业项目实战分享

 npm方式使用下方进行安装

npm install jweixin-module --save

安装在项目中的效果如图:

接下自己定义个js, 引入我们用npm引入的模块:

jwx 代码:

let jweixin = require('jweixin-module');
import {jsdkSignature
} from '../request/api.js'
export default {//判断是否在微信中    isWechat: function() {var ua = window.navigator.userAgent.toLowerCase();if (ua.match(/micromessenger/i) == 'micromessenger') {return true;} else {alert('不是微信客户端,请在微信客户端操作在,谢谢');return false;}},initJssdk: function(callback) {//获取当前url然后传递给后台获取授权和签名信息  let url = location.href;jsdkSignature({data: {url: url},success(res) {// console.log('后台返回签名')// alert(JSON.stringify(res))//返回需要的参数appId,timestamp,noncestr,signature等  //注入config权限配置  jweixin.config({debug: false,appId: res.data.appId,timestamp: res.data.timestamp,nonceStr: res.data.nonceStr,signature: res.data.signature,jsApiList: [ //这里是需要用到的接口名称  'checkJsApi', //判断当前客户端版本是否支持指定JS接口  'onMenuShareAppMessage', //分享接口  'getLocation', //获取位置  'openLocation', //打开位置  'scanQRCode', //扫一扫接口  'chooseWXPay', //微信支付  'chooseImage', //拍照或从手机相册中选图接口  'previewImage', //预览图片接口  'uploadImage' //上传图片  ]});if (callback) {callback(res.data);}}});},//在需要定位页面调用  getlocation: function(callback) {if (!this.isWechat()) {//console.log('不是微信客户端')  return;}jweixin.ready(function() {jweixin.getLocation({type: 'gcj02', // 默认为wgs84的gps坐标,如果要返回直接给openLocation用的火星坐标,可传入'gcj02'  success: function(res) {// console.log(res);  callback(res)},fail: function(res) {// console.log(res)},// complete:function(res){  //     console.log(res)  // }  });});},//打开位置openlocation: function(data) {if (!this.isWechat()) {//console.log('不是微信客户端')  return;}jweixin.ready(function() {jweixin.openLocation({latitude: data.latitude,longitude: data.longitude,name: data.name,address: data.address,scale: 14,});});},//选择图片chooseImage: function(callback) {if (!this.isWechat()) {//console.log('不是微信客户端')  return;}//console.log(data);  this.initJssdk(function(res) {jweixin.ready(function() {jweixin.chooseImage({count: 1,sizeType: ['compressed'],sourceType: ['album'],success: function(rs) {callback(rs)}})});});},//微信支付  wxpay: function(data, callback) {if (!this.isWechat()) {//console.log('不是微信客户端')  return;}jweixin.ready(function() {jweixin.chooseWXPay({timestamp: data.timestamp, // 支付签名时间戳,注意微信jssdk中的所有使用timestamp字段均为小写。但最新版的支付后台生成签名使用的timeStamp字段名需大写其中的S字符  nonceStr: data.nonceStr, // 支付签名随机串,不长于 32 位  package: data.package, // 统一支付接口返回的prepay_id参数值,提交格式如:prepay_id=\*\*\*)  signType: data.signType, // 签名方式,默认为'SHA1',使用新版支付需传入'MD5'  paySign: data.paysign, // 支付签名  success: function(res) {// console.log(res);  callback(res)},fail: function(res) {callback(res)},// complete:function(res){  //     console.log(res)  // }  });});}
}

说明:jwx 中请求了后台获取签名, url 为当前路径 location.href;

我这里是用java实现url签名:

用的是第三方的sdk (wxjava),如果是用maven,可以使用下面方式引入,版本自行更改

<!--微信相关-->
<dependency><groupId>com.github.binarywang</groupId><artifactId>weixin-java-miniapp</artifactId><version>${weixin-java.version}</version>
</dependency>
<weixin-java.version>3.9.0</weixin-java.version>

之后将自己获取APPID 和 秘钥配置好可以了。

因为我们自定义了js, 要想在全局中使用,就必须挂载

添加到 main.js中

import jwx from 'utils/common/jwx.js'
Vue.prototype.$jwx = jwx

之后我们可以在页面中使用,但是我们init(初始化)配置只要一次就行,所以我们可以在App.vue 中配置好。

jssdk 是基于微信浏览器,那就要判断是否在微信的环境中

接下来就是最重要的,如何在页面中使用:

可以直接用this调用,this.$jwx.(方法)

uniapp 中使用jssdk正确姿势相关推荐

  1. [golang]time.After 在select中使用的正确姿势(解决超时逻辑未生效bug)

    前言 select 的语法如下所示 每个case都必须是一个通信 所有channel表达式都会被求值 所有被发送的表达式都会被求值 如果任意某个通信可以进行,它就执行:其他被忽略. 如果有多个case ...

  2. java map合并_详解Java8合并两个Map中元素的正确姿势

    1. 介绍 本入门教程将介绍Java8中如何合并两个map. 更具体说来,我们将研究不同的合并方案,包括Map含有重复元素的情况. 2. 初始化 我们定义两个map实例 private static ...

  3. uniapp中使用微信jssdk

    在做自定义分享时,用到了微信jssdk,记录一下. 声明:本文演示uniapp中使用jssdk,示例为网页自定义分享 npm方式使用下方指令进行安装,正文部分为非npm方式. npm install ...

  4. word流程图擦除_word画流程图 Word中绘制流程图的正确姿势,这招大多数人不知道...

    如何在Word中绘制流程图?相信这个问题,许多人都知道,大多数人也都会.不过,还是有大多数人使用的方法却不是正确的方法.所以,今天小编就来为大家讲一下如何正确的绘制流程图.用正确的方法绘制流程图,事半 ...

  5. 正确姿势避坑 Python 中的6个典型错误

    点击关注我哦 一篇文章带你使用正确姿势避坑 Python 中的6个典型错误 Python是一种高级的动态脚本语言.它易于使用的特性使得它非常流行,并且在最近几年得到了扩展.易用性也从易滥用开始.我们列 ...

  6. Nuxt 项目引入外部Js的正确姿势 ,问题描述:打包构建之后引入的外部 js失效,构建之后的 .nuxt 文件夹下的js文件中,引入 js 的script标签凭空消失!

    首先先说我遇到的问题描述:       我是用vue + nuxt项目,项目中使用了阿里播放器,于是我在vue页面中直接引入了阿里播放器的 css和js文件,然后运行没有任何问题:如下图所示: 但是! ...

  7. 有一说一!这才是RabbitMQ实现分布式事务的正确姿势(项目实战)

    分布式事务 随着互联网快速发展,微服务,SOA 等服务架构模式正在被大规模的使用,现在分布式系统一般由多个独立的子系统组成,多个子系统通过网络通信互相协作配合完成各个功能. 有很多用例会跨多个子系统才 ...

  8. Ubuntu创建新用户的正确姿势

    作者按:因为教程所示图片使用的是 github 仓库图片,网速过慢的朋友请移步<Ubuntu 创建新用户的正确姿势>原文地址.更欢迎来我的小站看更多原创内容:godbmw.com,进行&q ...

  9. 互联网大厂内推求职的正确姿势?

    作者 | 码农唐磊 来源 | 程序猿石头(ID:tangleithu) 背景 每个人的职业生涯基本上都离不开"投简历找工作"这件事(什么,你家里有矿?当我没说),那拿着简历找工作正 ...

最新文章

  1. 你是怎样给下属分配工作
  2. hdu1501 记忆化搜索
  3. 简单使用Git和Github来管理自己的代码和读书笔记
  4. 孙叫兽进阶之路之如何进行情绪管理
  5. 关于手动栈 (模板)
  6. Postman下一个接口要用到上一个接口的数据
  7. 【毕业答辩】毕业答辩?你注意过这些细节吗?
  8. 比中年危机更可怕的,是“下半生危机”
  9. 简单的notepad将\n转化为换行
  10. Android多媒体功能开发(7)——使用SoundPool类播放音频
  11. 总结AUTOCAD快捷键,持续更新~
  12. ie9 html5 web worker,HTML5之殇
  13. 第十六届中国酒店“金枕头”奖获奖名单揭晓
  14. 爬虫笔记-Bugku秋名山老司机(入门)
  15. JS面试题汇总(六)
  16. win10装系统输入用户名就卡死
  17. mysql模糊查找英文可以查找中文不行(详细记录)
  18. 2020春节假期VR/AR资讯汇总
  19. 不定式作各种成份和现在分词作各种成份
  20. S*ST星美(000892):丰盛地产重组事宜形成初步方案

热门文章

  1. Python Matplotlib绘制漂亮的K线图,利用Tushare绘制K线图
  2. 仿YY.com的钓鱼网页,专盗YY账号,提醒网友注意了
  3. 第38天学习打卡(网络编程 )
  4. 项目的敏捷开发方法(转自MBAlib)
  5. 军事教育c语言程序设计答案,员工安全培训考试试题
  6. 智能家居赛道再现“鲶鱼”,“智有范”敲碎“三重门”
  7. springboot 下载模板文件 加载classpath文件路径
  8. 扫脸支付/smilepay
  9. 浅谈 ECMAScript 和 JavaScript
  10. 印度半导体的未来猜想