当前位置: 首页 > news >正文

H5 uniapp 接入wx sdk

uniapp因为要兼容小程序等,会重写wx对象,导致引入的jweixin-1.6.0.js中对象不生效。

综合网络资料,有两种解决方案:

一,通过npm工具引入

npm install jweixin-module --save

 实际上是借用了wx的另一个对象jWeixin

//main.jsimport jWeixin from 'jweixin-module'
Vue.prototype.$wx = jWeixin
// index.jsthis.$wx.config({debug: true,appId,timestamp,nonceStr,signature,jsApiList,
})
this.$wx.ready(()=> {})

 参考文章:uniapp开发h5 调用微信sdk 全网最全指南!!!! 血泪史!!!

二,手动引入

鉴于uniapp会重写wx的特性,在初始化后,可以再手动引入js,覆盖原有的wx对象

// 新增模板 template.html 
<!DOCTYPE html>
<html lang="zh-CN"><head><meta charset="utf-8" /><meta http-equiv="X-UA-Compatible" content="IE=edge" /><title><%= htmlWebpackPlugin.options.title %></title><!-- Open Graph data --><!-- <meta property="og:title" content="Title Here" /> --><!-- <meta property="og:url" content="http://www.example.com/" /> --><!-- <meta property="og:image" content="http://example.com/image.jpg" /> --><!-- <meta property="og:description" content="Description Here" /> --><script>var coverSupport = 'CSS' in window && typeof CSS.supports === 'function' && (CSS.supports('top: env(a)') || CSS.supports('top: constant(a)'))document.write('<meta name="viewport" content="width=device-width, user-scalable=no, initial-scale=1.0, maximum-scale=1.0, minimum-scale=1.0' +(coverSupport ? ', viewport-fit=cover' : '') +'" />')</script><link rel="stylesheet" href="<%= BASE_URL %>static/index.<%= VUE_APP_INDEX_CSS_HASH %>.css" /></head><body><noscript><strong>Please enable JavaScript to continue.</strong></noscript><div id="app"></div><!-- built files will be auto injected --></body><!-- <script>window.wx = {}</script><script type="text/javascript" src="http://res.wx.qq.com/open/js/jweixin-1.2.0.js"></script> -->
</html>
// manifest.json
"h5" : {"optimization" : {"treeShaking" : {"enable" : true}},"sdkConfigs" : {"maps" : {}},"router" : {// "base" : "/process-client/","mode" : "history"},"devServer" : {"disableHostCheck" : true,"proxy" : {"/api" : {"target" : "http://xxx.xx.xxx.xxx:xxx","changeOrigin" : true,"secure" : false,"logLevel" : "debug","pathRewrite" : {"^/api" : ""}}},"https" : false},"template" : "template.html"}
// utils/wx-sdk.jsexport const createdScript = (callback) => {window.wx = nullconst script1 = document.createElement('script')script1.setAttribute('type', 'text/javascript')script1.setAttribute('src', 'https://res.wx.qq.com/open/js/jweixin-1.2.0.js')document.head.appendChild(script1)script1.onload = function () {window.wx = window.jWeixincallback && callback()}
}
// App.vue<script>
import { createdScript } from '@/utils/wx-sdk.js'
export default {onShow: function () {console.log('App Show')createdScript(() => {api({url: window.location.href}).then(([err, res]) => {if (err) {return}wx.config({debug: false, // 开启调试模式,调用的所有api的返回值会在客户端alert出来,若要查看传入的参数,可以在pc端打开,参数信息会通过log打出,仅在pc端时才会打印。appId: res.appId, // 必填,企业微信的corpIDtimestamp: Number(res.timestamp), // 必填,生成签名的时间戳nonceStr: res.nonceStr, // 必填,生成签名的随机串signature: res.signature, // 必填,签名,见 附录-JS-SDK使用权限签名算法jsApiList: []})})})},
}
</script>

相关文章:

  • Vue 定义只读数据 readonly
  • Java EE 进程线程
  • webpack配置完热更新之后还是会刷新整个页面
  • 制作openeuler制作livecd
  • VScode 配置
  • 计算机视觉的应用19-基于pytorch框架搭建卷积神经网络CNN的卫星地图分类问题实战应用
  • Python 使用XlsxWriter操作Excel
  • TCP知识点
  • C语言--每日选择题--Day24
  • ElasticSearch02
  • 局域网的网络ip不稳定问题
  • 【差旅游记】新疆哈密回王府印象
  • 唯创知音WT2605C-A001音频蓝牙语音芯片:小巧体积,高品质音频播放的创新
  • Grafana采用Nginx反向代理
  • 5. 链表
  • bearychat的java client
  • Computed property XXX was assigned to but it has no setter
  • EventListener原理
  • extjs4学习之配置
  • FineReport中如何实现自动滚屏效果
  • iOS 颜色设置看我就够了
  • miniui datagrid 的客户端分页解决方案 - CS结合
  • MySQL Access denied for user 'root'@'localhost' 解决方法
  • PHP 程序员也能做的 Java 开发 30分钟使用 netty 轻松打造一个高性能 websocket 服务...
  • Webpack4 学习笔记 - 01:webpack的安装和简单配置
  • Yii源码解读-服务定位器(Service Locator)
  • 成为一名优秀的Developer的书单
  • 分布式熔断降级平台aegis
  • 构建二叉树进行数值数组的去重及优化
  • 每个JavaScript开发人员应阅读的书【1】 - JavaScript: The Good Parts
  • 悄悄地说一个bug
  • 巧用 TypeScript (一)
  • 数组大概知多少
  • 系统认识JavaScript正则表达式
  • 用 Swift 编写面向协议的视图
  • 如何通过报表单元格右键控制报表跳转到不同链接地址 ...
  • ​你们这样子,耽误我的工作进度怎么办?
  • ![CDATA[ ]] 是什么东东
  • ###51单片机学习(1)-----单片机烧录软件的使用,以及如何建立一个工程项目
  • #图像处理
  • $(function(){})与(function($){....})(jQuery)的区别
  • $refs 、$nextTic、动态组件、name的使用
  • (6)【Python/机器学习/深度学习】Machine-Learning模型与算法应用—使用Adaboost建模及工作环境下的数据分析整理
  • (二十三)Flask之高频面试点
  • (机器学习-深度学习快速入门)第一章第一节:Python环境和数据分析
  • (三分钟了解debug)SLAM研究方向-Debug总结
  • (十)DDRC架构组成、效率Efficiency及功能实现
  • (算法)Game
  • (一)Thymeleaf用法——Thymeleaf简介
  • (转)Java socket中关闭IO流后,发生什么事?(以关闭输出流为例) .
  • (转)Sql Server 保留几位小数的两种做法
  • . ./ bash dash source 这五种执行shell脚本方式 区别
  • ./configure,make,make install的作用(转)
  • .apk文件,IIS不支持下载解决
  • .Net Core/.Net6/.Net8 ,启动配置/Program.cs 配置