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


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 相关文章推荐
jQuery html()方法使用不了无法显示内容的问题
Aug 06 Javascript
Node.js文件操作详解
Aug 16 Javascript
jquery对象和DOM对象的任意相互转换
Feb 21 Javascript
jquery div模态窗口的简单实例
May 28 Javascript
javascript运算符——逻辑运算符全面解析
Jun 27 Javascript
一步一步封装自己的HtmlHelper组件BootstrapHelper(二)
Sep 14 Javascript
DataTables+BootStrap组合使用Ajax来获取数据并且动态加载dom的方法(排序,过滤,分页等)
Nov 09 Javascript
AngularJS操作键值对象类似java的hashmap(填坑小结)
Nov 12 Javascript
jQuery插件zTree实现删除树节点的方法示例
Mar 08 Javascript
详解Node中导入模块require和import的区别
Aug 11 Javascript
jQuery中extend函数简单用法示例
Oct 11 jQuery
js实现九宫格抽奖
Mar 19 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开发框架总结收藏
2008/04/24 PHP
.htaccess文件保护实例讲解
2011/02/06 PHP
使用php get_headers 判断URL是否有效的解决办法
2013/04/27 PHP
Paypal实现循环扣款(订阅)功能
2017/03/23 PHP
yii2多图上传组件的使用教程
2018/05/10 PHP
PHP实现关键字搜索后描红功能示例
2019/07/03 PHP
Laravel5.5+ 使用API Resources快速输出自定义JSON方法详解
2020/04/06 PHP
nodejs实用示例 缩址还原
2010/12/28 NodeJs
详谈 Jquery Ajax异步处理Json数据.
2011/09/09 Javascript
JavaScript动态插入script的基本思路及实现函数
2013/11/11 Javascript
基于jquery自定义的漂亮单选按钮RadioButton
2013/11/19 Javascript
jquery通过select列表选择框对表格数据进行过滤示例
2014/05/07 Javascript
JavaScript中定时控制Throttle、Debounce和Immediate详解
2016/11/17 Javascript
Angularjs之filter过滤器(推荐)
2016/11/27 Javascript
在网页中插入百度地图的步骤详解
2016/12/02 Javascript
JS解析url查询参数的简单代码
2017/08/06 Javascript
JS原型与继承操作示例
2019/05/09 Javascript
vue下的@change事件的实现
2019/10/25 Javascript
javascript设计模式 ? 享元模式原理与用法实例分析
2020/04/15 Javascript
深入理解python中的atexit模块
2017/03/07 Python
Python实现的人工神经网络算法示例【基于反向传播算法】
2017/11/11 Python
使用python获取电脑的磁盘信息方法
2018/11/01 Python
pycharm配置pyqt5-tools开发环境的方法步骤
2019/02/11 Python
python找出一个列表中相同元素的多个索引实例
2019/06/11 Python
python代码如何实现余弦相似性计算
2020/02/09 Python
基于HTML5 audio元素播放声音jQuery小插件
2011/05/11 HTML / CSS
Ooni英国官网:披萨烤箱
2020/05/31 全球购物
班组长岗位职责
2014/03/03 职场文书
高中语文课后反思
2014/04/27 职场文书
观看《周恩来的四个昼夜》思想汇报
2014/09/12 职场文书
高校师德师风自我剖析材料
2014/09/29 职场文书
初中生300字旷课检讨书
2014/11/19 职场文书
严以修身专题学习研讨会发言材料
2015/11/09 职场文书
JavaScript函数柯里化
2021/11/07 Javascript
《吸血鬼:避世 血猎》官宣4.27发售 系列首款大逃杀
2022/04/03 其他游戏
永中文档在线转换预览基于nginx配置部署方案
2022/06/10 Servers