微信分享
import global from '@/js/global.js'; import api from '@/js/api.js'; import tools from '@/js/tools.js'; var url=encodeURIComponent(window.location.href.split('#')[0]);//当前页面路径 console.log(decodeURIComponent(url)) var huiyi_id=JSON.parse(localStorage.getItem('meetingManagerStore')).meetingConfigData.id;//会议id var wxconfig={ appId:"", noncestr:"", openId:"", signature:"", timestamp:"" } //获取配置参数 function getWxConfig(callback){ api.post(global.lipeng+"/weChat/getWechatInfo",{huiyi_id,url},res=>{ if(res.data.success){ wxconfig={...wxconfig,...res.data.data}; wxInit(wxconfig,callback)//调用初始化方法 }else{ tools.msgErr(res.data.message||'error'); } },err=>{ console.log(err); }); } //微信初始化方法 function wxInit(wxconfig,callback){ var configData={ beta: true, debug: false, // 开启调试模式,调用的所有api的返回值会在客户端alert出来,若要查看传入的参数,可以在pc端打开,参数信息会通过log打出,仅在pc端时才会打印。 appId: wxconfig.appId, // 必填,公众号的唯一标识 timestamp:wxconfig.timestamp, // 必填,生成签名的时间戳 nonceStr: wxconfig.noncestr, // 必填,生成签名的随机串 signature: wxconfig.signature,// 必填,签名 jsApiList: [// 必填,需要使用的JS接口列表 'chooseInvoiceTitle',//获取发票信息 'updateAppMessageShareData',//分享给微信朋友 ] }; wx.config(configData); //初始化config完成后 自动调用ready方法 wx.ready(function(){ console.log(wxconfig) if(wxconfig.appId&&wxconfig.timestamp&&wxconfig.noncestr&&wxconfig.signature){ if(callback){ callback(); } }else{ tools.msgErr("微信初始化失败") } }); wx.error(function(res){//初始化失败 console.error(res) }); } //wxInvoke获取发票数据的方法 function wxInvoke(){ return new Promise(resolve=>{ wx.invoke('chooseInvoiceTitle', { // 这里要传入参数 "scene":"1" }, function (res) { // 这里处理调用结果 if(res.err_msg=="chooseInvoiceTitle:ok"){//选取发票抬头成功 resolve(res.choose_invoice_title_info); }else if(res.err_msg=="chooseInvoiceTitle:fail"){ tools.msgErr("选取发票抬头失败"); }else if(res.err_msg=="chooseInvoiceTitle:cancel"){ tools.msgErr("取消选取发票抬头"); } }) }) } //wxShareToFriend分享给朋友 function wxShareToFriend(shareParams){ wx.updateAppMessageShareData({ title:shareParams.title, // 分享标题 desc: shareParams.desc, // 分享描述 link: shareParams.link, // 分享链接,该链接域名或路径必须与当前页面对应的公众号JS安全域名一致 imgUrl: shareParams.imgUrl, // 分享图标 success: function () { // 设置成功 } }) } export default{ getWxConfig,//获取配置参数 wxInit,//微信初始化方法 wxInvoke,//获取发票信息的方法 wxShareToFriend,//分享给微信朋友 }
解决vue中分享只能分享落地页的情况:
app.vue
<template>
<div id="app">
<router-view />
</div>
</template>
<script>
export default {
watch: {
$route: {
immediate: true,
deep: true,
handler(to) {
// 微信浏览器判断
const WECHAT_BROWSER = navigator.userAgent.toLowerCase().includes('micromessenger')
// 解决iOS微信浏览器分享地址只能是落地页的问题,这个操作是不会刷新页面的,query参数改变也会执行
if (WECHAT_BROWSER) {
// eslint-disable-next-line
window.location.href = window.location.href
}
}
},
}
}
</script>
<style>
#app {
}
</style>
分享时的link“”

https://developers.weixin.qq.com/doc/offiaccount/OA_Web_Apps/JS-SDK.html#111
。

浙公网安备 33010602011771号