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


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 相关文章推荐
JS getMonth()日期函数的值域是0-11
Feb 15 Javascript
js+html5实现canvas绘制简单矩形的方法
Jun 05 Javascript
JavaScript常用字符串与数组扩展函数小结
Apr 24 Javascript
jquery实现ajax加载超时提示的方法
Jul 23 Javascript
深入理解JS DOM事件机制
Aug 06 Javascript
利用Javascript仿Excel的数据透视分析功能
Sep 07 Javascript
前端弹出对话框 js实现ajax交互
Sep 09 Javascript
bootstrap基础知识学习笔记
Nov 02 Javascript
jQuery.cookie.js实现记录最近浏览过的商品功能示例
Jan 23 Javascript
纯JS实现弹性导航条效果
Mar 06 Javascript
Vue 实现树形视图数据功能
May 07 Javascript
微信小程序把百度地图坐标转换成腾讯地图坐标过程详解
Jul 10 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 n个不重复的随机数生成代码
2009/06/23 PHP
php获取文件夹路径内的图片以及分页显示示例
2014/03/11 PHP
php使用ffmpeg向视频中添加文字字幕的实现方法
2016/05/23 PHP
javascript 限制输入脚本大全
2009/11/03 Javascript
js展开闭合效果演示代码
2013/07/24 Javascript
js函数返回多个返回值的示例代码
2013/11/05 Javascript
jQuery获取动态生成的元素示例
2014/06/15 Javascript
Node.js实用代码段之正确拼接Buffer
2016/03/17 Javascript
JavaScript数组去重的几种方法效率测试
2016/10/23 Javascript
jQuery插件zTree实现获取当前选中节点在同级节点中序号的方法
2017/03/08 Javascript
jQuery实现键盘回车搜索功能
2017/07/25 jQuery
Thinkphp5微信小程序获取用户信息接口的实例详解
2017/09/26 Javascript
对angular4子路由&辅助路由详解
2018/10/09 Javascript
three.js实现炫酷的全景3D重力感应
2018/12/30 Javascript
js实现计时器秒表功能
2019/12/16 Javascript
vue 通过绑定事件获取当前行的id操作
2020/07/27 Javascript
Python的Django框架中的数据库配置指南
2015/07/17 Python
windows上安装Anaconda和python的教程详解
2017/03/28 Python
Python通过TensorFlow卷积神经网络实现猫狗识别
2019/03/14 Python
python-django中的APPEND_SLASH实现方法
2019/06/21 Python
python中对数据进行各种排序的方法
2019/07/02 Python
Django接收自定义http header过程详解
2019/08/23 Python
python 字典访问的三种方法小结
2019/12/05 Python
Django实现从数据库中获取到的数据转换为dict
2020/03/27 Python
Python字符串函数strip()原理及用法详解
2020/07/23 Python
犹他州最古老的体育用品公司:Al’s
2020/12/18 全球购物
公司年会晚宴演讲稿
2014/01/06 职场文书
吃空饷专项整治方案
2014/10/27 职场文书
2014年保险公司工作总结
2014/11/22 职场文书
2015年学生会工作总结范文
2015/03/31 职场文书
让生命充满爱观后感
2015/06/08 职场文书
公司职员入党自传书
2015/06/26 职场文书
2019年暑期安全广播稿!
2019/07/03 职场文书
详解Python牛顿插值法
2021/05/11 Python
PC版《死亡搁浅导剪版》现已发售 展开全新的探险
2022/04/03 其他游戏
Python实现仓库管理系统
2022/05/30 Python