uni-app 开发微信公众号(H5)JSSDK 的使用方式
uni-app 开发微信公众号(H5)JSSDK 的使用方式
方案一:模块化
在 uni-app 中可以使用模块方式引用微信 js-sdk ,可以避免与 uni-app 内置 wx 全局对象冲突的问题。
微信官网直接下载的如果使用有问题,可以使用 jweixin-module。
安装
NPM安装方式(不会用NPM就不要用这种方式)
npm install jweixin-module --save
下载使用方式
下载地址:https://unpkg.com/jweixin-module@1.6.0/lib/index.js
使用
var jWeixin = require('jweixin-module')
jWeixin.ready(function(){
// TODO
});
方案二:全局引入
如果不使用模块化引入 JS-SDK,而采用传统方式在 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>
<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>
<script src="http://res.wx.qq.com/open/js/jweixin-1.6.0.js"></script>
<script>
window.jWeixin=window.wx;
delete window.wx;
</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>
</body>
</html>
完整API
1 回复
在uni-app中开发微信公众号并使用H5 JSSDK,主要涉及到配置微信公众号的相关参数、引入JSSDK、调用相关接口等步骤。以下是一个简单的代码案例,展示如何在uni-app中实现这一过程。
1. 配置微信公众号
首先,你需要在微信公众平台上获取AppID和AppSecret,并确保你的公众号已通过认证,已获得JS接口安全域名等权限。
2. 引入JSSDK
在uni-app的H5页面中,你可以通过<script>
标签引入微信JSSDK。
<template>
<view>
<!-- 你的页面内容 -->
</view>
</template>
<script>
export default {
onLoad() {
// 判断是否在微信环境
if (typeof wx !== 'undefined') {
// 引入微信JSSDK
const script = document.createElement('script');
script.src = 'https://res.wx.qq.com/open/js/jweixin-1.6.0.js';
script.onload = () => {
this.initJSSDK();
};
document.head.appendChild(script);
}
},
methods: {
initJSSDK() {
// 这里填写你的公众号AppID
const appId = 'YOUR_APP_ID';
// 获取签名所需的参数,这里假设你有一个后端接口可以提供签名
uni.request({
url: 'https://your-backend-api/getSignature',
method: 'POST',
data: {
url: window.location.href.split('#')[0] // 当前页面的URL
},
success: (res) => {
const signatureData = res.data;
wx.config({
debug: false, // 开启调试模式
appId,
timestamp: signatureData.timestamp,
nonceStr: signatureData.nonceStr,
signature: signatureData.signature,
jsApiList: ['onMenuShareTimeline', 'onMenuShareAppMessage'] // 需要使用的JS接口列表
});
wx.ready(() => {
// 接口调用成功
wx.onMenuShareTimeline({
title: '分享标题',
link: window.location.href,
imgUrl: '分享图标URL',
success: () => {
// 用户确认分享后执行的回调函数
},
cancel: () => {
// 用户取消分享后执行的回调函数
}
});
wx.onMenuShareAppMessage({
title: '分享标题',
desc: '分享描述',
link: window.location.href,
imgUrl: '分享图标URL',
type: '', // 分享类型,music、video或link,不填默认为link
dataUrl: '', // 如果type是music或者video,则要提供数据链接,默认为空
success: () => {
// 用户确认分享后执行的回调函数
},
cancel: () => {
// 用户取消分享后执行的回调函数
}
});
});
wx.error((err) => {
// 接口调用失败
console.error('wx error:', err);
});
},
fail: (err) => {
console.error('Request failed:', err);
}
});
}
}
};
</script>
注意事项
- 确保你的后端接口能够正确生成签名。签名生成逻辑需要用到AppID、AppSecret、当前URL以及一个随机字符串和时间戳。
- 在调用
wx.config
之前,请确保window.location.href
是当前页面的完整URL(不包括hash部分)。 jsApiList
中填写你需要使用的微信JSSDK接口名称。
以上代码案例展示了如何在uni-app的H5页面中引入并使用微信JSSDK。你可以根据实际需求进行调整和扩展。