详解单页面路由工程使用微信分享及二次分享解决方案


Posted in Javascript onFebruary 22, 2019

wxShare 说明文档

单页面路由工程使用微信分享及二次分享解决方案

很多人在单页面工程中使用weixin jsSDK时 ,第一次调用正常, 路由切换时发现调用分享配置报错, 此时忽略了一点 ,在单页面路由的 url 发生变化时, 需要重现调用微信jsSDK分享配置;

wxShare除适用于 Vue 单页工程外, 也可以使用与其他单页工程例如 React,本示例主要展示如何在 Vue中使用;

微信 jssdk调用基本原理

1. (初始化页面,划重点)掉用 api 获取当前页面 url 授权的签名
2. 配置微信分享 jssdk
3. 路由切换时, 重新执行步骤2

1. 快速使用, 只需三步

示例参见 demo下 src/main.js

在工程入口文件引入 wxShare 文件

/*************** 步骤一 引入 微信 jssdk ************/
let appInit=0;
import wx from 'weixin-js-sdk';
//配置授权api
wxShare.config.jsSDKAuth='/api/mobile/WeiXin/ecstoreSendJsSdk';
/*************** 第二步 初始化微信分享 ************/
if (location.host != "localhost:8080") {
 let sign_url = location.href.split("#")[0];
 appInit++;
 if (wx) {
  wxShare.initWxShare(sign_url);
 }
}
/*************** 第三步 监听路由重置微信分享为默认 ************/
router.afterEach(route => {
 let url=location.href.split("#")[0];
 if (!store) return;
 if(appInit>1){
  wxShare.resetWxShareConfig();
 }
 appInit++;
})
/*************** end 分割线 ************/

2. wxShare提供的方法

2.1 initWxShare()

初始化微信分享, 此时会调用内部方法 wxShareAuth, 请求 api 授权当前页面 url;

2.2 updateWxShareConfig()

更新微信分享配置内容, 例如, 在某个事件上主动调用此方法, 来更改微信分享配置的标题, 简述,链接或者封面图

2.3 resetWxShareConfig()

通常情况下, 在路由发生变化时, 希望已被更改过的分享配置, 重新重置为默认分享配置

2.4 configWXJSSDK();

调用微信jsSDK 完成分享配置

3. wxShare.config属性配置

配置名称 属性值 默认值
jsSDKAuth String ''
shareSign Object 下文shareSign
defaultWxShareConfig Object 下文defaultWxShareConfig
wxShareConfig Object 下文wxShareConfig

3.1 shareSign提供的配置

{
 appid:"",
 jsapi_ticket:"",
 nonceStr:"",
 signature:"",
 timestamp:'',
 url:"",
}

3.2 defaultWxShareConfig

{
 title: "默认分享配置title",
 desc: "默认分享配置desc",
 link: location.href.split("#")[0],
 imgUrl: 'https://res.wx.qq.com/a/wx_fed/weixin_portal/res/static/img/dNEBuK6.png',
 jsApiList:['onMenuShareTimeline', 'onMenuShareAppMessage', 'hideMenuItems', 'closeWindow'],
 hideMenuList:['menuItem:editTag', 'menuItem:delete', 'menuItem:originPage', 'menuItem:readMode', 'menuItem:openWithQQBrowser', 'menuItem:openWithSafari', 'menuItem:share:email', 'menuItem:share:brand']
}

3.3 wxShareConfig

wxShareConfig:{}

其他

/wxShare.js 为插件源码文件, 可根据自己需求自行更改
demo 工程只需 clone 本工程,

npm install
npm run serve

npm依赖插件

  • weixin-js-sdk
  • axios

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持三水点靠木。

Javascript 相关文章推荐
javascript学习笔记(一) 在html中使用javascript
Jun 18 Javascript
JQuery对class属性的操作实现按钮开关效果
Oct 11 Javascript
jquery悬浮提示框完整实例
Jan 13 Javascript
JS面试题---关于算法台阶的问题
Jul 26 Javascript
ES6新特性四:变量的解构赋值实例
Apr 21 Javascript
简述vue中的config配置
Jan 23 Javascript
Angular动画实现的2种方式以及添加购物车动画实例代码
Aug 09 Javascript
vue2.0获取鼠标位置的方法
Sep 13 Javascript
深入探讨JavaScript的最基本部分之执行上下文
Feb 12 Javascript
vue.js实现备忘录demo
Jun 26 Javascript
layui弹出框Tab选项卡的示例代码
Sep 04 Javascript
基于Web Audio API实现音频可视化效果
Jun 12 Javascript
详解关于Vuex的action传入多个参数的问题
Feb 22 #Javascript
Vue.js实现开发购物车功能的方法详解
Feb 22 #Javascript
vue组件之间通信方式实例总结【8种方式】
Feb 22 #Javascript
vue2.0中set添加属性后视图不能更新的解决办法
Feb 22 #Javascript
浅谈Node框架接入ELK实践总结
Feb 22 #Javascript
vue工程全局设置ajax的等待动效的方法
Feb 22 #Javascript
JavaScript数据结构与算法之检索算法示例【二分查找法、计算重复次数】
Feb 22 #Javascript
You might like
php生成的html meta和link标记在body标签里 顶部有个空行
2010/05/18 PHP
laravel框架中表单请求类型和CSRF防护实例分析
2019/11/23 PHP
Raphael一个用于在网页中绘制矢量图形的Javascript库
2013/01/08 Javascript
JS 退出系统并跳转到登录界面的实现代码
2013/06/29 Javascript
js隐式全局变量造成的bug示例代码
2014/04/22 Javascript
基于jQuery实现简单的折叠菜单效果
2015/11/23 Javascript
javascript日期比较方法实例分析
2016/06/17 Javascript
webpack3+React 的配置全解
2017/08/21 Javascript
Vue的百度地图插件尝试使用
2017/09/06 Javascript
mescroll.js上拉加载下拉刷新组件使用详解
2017/11/13 Javascript
js 数组详细操作方法及解析合集
2018/06/01 Javascript
小程序实现留言板
2018/11/02 Javascript
JS中的变量作用域(console版)
2020/07/18 Javascript
[03:02]2014DOTA2西雅图邀请赛 让队员自己告诉你DK NAVI备战情况
2014/07/08 DOTA
[02:38]DOTA2 夜魇暗潮2020活动介绍官方视频
2020/11/04 DOTA
python正则匹配抓取豆瓣电影链接和评论代码分享
2013/12/27 Python
Python使用wxPython实现计算器
2018/01/30 Python
Python KMeans聚类问题分析
2018/02/23 Python
python监控进程脚本
2018/04/12 Python
Python搭建代理IP池实现检测IP的方法
2019/10/27 Python
Python reshape的用法及多个二维数组合并为三维数组的实例
2020/02/07 Python
Python+OpenCV实现图像的全景拼接
2020/03/05 Python
Python 面向对象部分知识点小结
2020/03/09 Python
python 制作本地应用搜索工具
2021/02/27 Python
Booking.com荷兰:全球酒店网上预订
2017/08/22 全球购物
ASOS比利时:英国线上零售商及自有品牌
2018/07/29 全球购物
酒店实习个人鉴定
2013/12/07 职场文书
煤矿班组长的职责
2013/12/25 职场文书
广播节目策划方案
2014/05/23 职场文书
民事授权委托书范文
2014/08/02 职场文书
争先创优活动总结
2014/08/27 职场文书
违纪检讨书范文
2015/01/27 职场文书
新教师教学工作总结
2015/08/12 职场文书
大学生村官工作心得体会
2016/01/23 职场文书
Vue-Element-Admin集成自己的接口实现登录跳转
2021/06/23 Vue.js
MySQL数据库安装方法与图形化管理工具介绍
2022/05/30 MySQL