跳到主要内容

2 篇博文 含有标签「jssdk」

查看所有标签

· 阅读需 1 分钟

1、新建watermark.js文件


// 页面添加水印效果
const setWatermark = (str) => {
const id = '1.23452384164.123412416';
if (document.getElementById(id) !== null) document.body.removeChild(document.getElementById(id));
const can = document.createElement('canvas');
can.width = 200;
can.height = 130;
const cans = can.getContext('2d');
cans.rotate((-20 * Math.PI) / 180);
cans.font = '12px Vedana';
cans.fillStyle = 'rgba(200, 200, 200, 0.30)';
cans.textBaseline = 'middle';
cans.fillText(str, can.width / 10, can.height / 2);
const div = document.createElement('div');
div.id = id;
div.style.pointerEvents = 'none';
div.style.top = '0px';
div.style.left = '0px';
div.style.position = 'fixed';
div.style.zIndex = '10000000';
div.style.width = `${document.documentElement.clientWidth}px`;
div.style.height = `${document.documentElement.clientHeight}px`;
div.style.background = `url(${can.toDataURL('image/png')}) left top repeat`;
document.body.appendChild(div);
return id;
};

/**
* 页面添加水印效果
* @method set 设置水印
* @method del 删除水印
*/
const watermark = {
// 设置水印
set: (str) => {
let id = setWatermark(str);
if (document.getElementById(id) === null) id = setWatermark(str);
},
// 删除水印
del: () => {
let id = '1.23452384164.123412416';
if (document.getElementById(id) !== null) document.body.removeChild(document.getElementById(id));
},
};
// 导出方法
export default watermark;


2、页面使用

watermark.set("我是水印")

· 阅读需 4 分钟

1、引用Vue依赖

yarn add weixin-js-sdk

2、新建wxConfig.js

//获取签名接口
import {requestData} from "@/api/request";
import {auth} from "@/api/urls";
import wx from "weixin-js-sdk";
const wxConfig = (resolve, reject) => {
const url = window.location.href;
requestData(auth.jsapi, {url: url, wxtype: "qy"}).then(({data, succeeded}) => {
if (succeeded) {
wx.config({
beta: true,// 必须这么写,否则wx.invoke调用形式的jsapi会有问题
debug: false, // 开启调试模式,调用的所有api的返回值会在客户端alert出来,若要查看传入的参数,可以在pc端打开,参数信息会通过log打出,仅在pc端时才会打印。
appId: data.appid, // 必填,企业微信的corpID
timestamp: data.timestamp, // 必填,生成签名的时间戳
nonceStr: data.noncestr, // 必填,生成签名的随机串
signature: data.signature,// 必填,签名,见 附录-JS-SDK使用权限签名算法
jsApiList: [
'onMenuShareAppMessage',//获取“转发”按钮点击状态及自定义分享内容接口
'onMenuShareWechat',//获取“微信”按钮点击状态及自定义分享内容接口
'onMenuShareTimeline',//分享到朋友圈
'shareAppMessage',//自定义转发到微信
'shareWechatMessage', //自定义转发到微信
'hideMenuItems',//隐藏右上角菜单接口
'getLocation',//获取地理位置接口
] // 必填,需要使用的JS接口列表,凡是要调用的接口都需要传进来
});
// config信息验证后会执行ready方法,所有接口调用都必须在config接口获得结果之后,config是一个客户端的异步操作,所以如果需要在页面加载时就调用相关接口,则须把相关接口放在ready函数中调用来确保正确执行。对于用户触发时才调用的接口,则可以直接调用,不需要放在ready函数中。
wx.ready(res => {
// 微信SDK准备就绪后执行的回调。
wx.hideMenuItems({// 要隐藏的菜单项,只能隐藏“传播类”和“保护类”按钮,所有menu项见附录3
menuList: [
'menuItem:share:wechat',//分享微信
"menuItem:share:timeline",//分享到朋友圈
'menuItem:openWithSafari',//Safari打开
'menuItem:share:email',//邮箱
'menuItem:setFont',//调整字体
'menuItem:copyUrl',//复制链接
'menuItem:favorite',//收藏
]
});
resolve && resolve(wx, res);
})
wx.error(function (res) {
console.log(res);
});
} else {
console.log("微信配置错误!");
}
})
};

export {wxConfig}

3、main.js全局引用

import {wxConfig} from '@/utils/wxjsApi.js';
app.config.globalProperties.$wxConfig = wxConfig;

4、页面组件使用

//微信分享和获取定位
const {proxy} = getCurrentInstance();
proxy.$wxConfig((wx, res) => {
let shareData = {
title: "分享标题", // 分享标题
desc: "分享描述分享描述分享描述分享描述", // 分享描述
link: window.location.href, // 分享链接,该链接域名或路径必须与当前页面对应的公众号JS安全域名一致
imgUrl: host + "/heard.png", // 分享图标
};
// 转发
wx.onMenuShareAppMessage(shareData);
// 分享到朋友圈
wx.onMenuShareTimeline(shareData)
// 获取地理位置
wx.getLocation({
type: 'wgs84', // 默认为wgs84的gps坐标,如果要返回直接给openLocation用的火星坐标,可传入'gcj02'
success: function (res) {
}
});
});