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


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 function代码
May 23 Javascript
获取内联和链接中的样式(js代码)
Apr 11 Javascript
jQuery表单验证功能实例
Aug 28 Javascript
jQuery中的on与bind绑定事件区别实例详解
Feb 28 Javascript
使用jQuery的load方法设计动态加载及解决被加载页面js失效问题
Mar 01 Javascript
多个上传文件用js验证文件的格式和大小的方法(推荐)
Mar 09 Javascript
React复制到剪贴板的示例代码
Aug 22 Javascript
微信小程序实现tab和swiper切换结合效果
Jul 17 Javascript
mpvue开发音频类小程序踩坑和建议详解
Mar 12 Javascript
VsCode与Node.js知识点详解
Sep 05 Javascript
JavaScript鼠标拖拽事件详解
Apr 03 Javascript
Vue h函数的使用详解
Feb 18 Vue.js
详解关于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
全国FM电台频率大全 - 22 重庆市
2020/03/11 无线电
PHP网页游戏学习之Xnova(ogame)源码解读(十)
2014/06/24 PHP
PHP的switch判断语句的“高级”用法详解
2014/10/01 PHP
PHP自定义序列化接口Serializable用法分析
2017/12/29 PHP
Aster vs KG BO3 第二场2.19
2021/03/10 DOTA
javascript 类定义的4种方法
2009/09/12 Javascript
JQuery 构建客户/服务分离的链接模型中Table中的排序分析
2010/01/22 Javascript
优化RequireJS项目的相关技巧总结
2015/07/01 Javascript
jQuery滚动加载图片实现原理
2015/12/14 Javascript
jQuery实现的指纹扫描效果实例(附演示与demo源码下载)
2016/01/26 Javascript
javascript特殊文本输入框网页特效
2016/09/13 Javascript
Bootstrap优化站点资源、响应式图片、传送带使用详解3
2016/10/14 Javascript
prototype与__proto__区别详细介绍
2017/01/09 Javascript
JavaScript适配器模式详解
2017/10/19 Javascript
基于mpvue的小程序项目搭建的步骤
2018/05/22 Javascript
图文讲解用vue-cli脚手架创建vue项目步骤
2019/02/12 Javascript
[39:11]DOTA2上海特级锦标赛C组资格赛#2 LGD VS Newbee第二局
2016/02/28 DOTA
python 基础学习第二弹 类属性和实例属性
2012/08/27 Python
使用Python程序抓取新浪在国内的所有IP的教程
2015/05/04 Python
在windows系统中实现python3安装lxml
2016/03/23 Python
浅述python2与python3的简单区别
2018/09/19 Python
对python模块中多个类的用法详解
2019/01/10 Python
解决Django Static内容不能加载显示的问题
2019/07/28 Python
python [:3] 实现提取数组中的数
2019/11/27 Python
基于django 的orm中非主键自增的实现方式
2020/05/18 Python
纯CSS实现聊天框小尖角、气泡效果
2014/04/04 HTML / CSS
HTML 5 input placeholder 属性如何完美兼任ie
2014/05/12 HTML / CSS
历史学专业大学生找工作的自我评价
2013/10/16 职场文书
中专毕业生自荐信
2013/11/16 职场文书
制药工程专业个人求职自荐信
2014/01/25 职场文书
5s标语大全
2014/06/23 职场文书
流动人口婚育证明范本
2014/09/26 职场文书
2014年无财产无子女离婚协议书范本
2014/10/09 职场文书
常住证明范本
2015/06/23 职场文书
担保公司2015年终工作总结
2015/10/14 职场文书
ant design vue的form表单取值方法
2022/06/01 Vue.js