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


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 相关文章推荐
form中限制文本字节数js代码
Jun 10 Javascript
详解强大的jQuery选择器之基本选择器、层次选择器
Feb 07 Javascript
javascript创建对象的几种模式介绍
May 06 Javascript
全面解析多种Bootstrap图片轮播效果
May 27 Javascript
详解Javascript函数声明与递归调用
Oct 22 Javascript
Node.js Sequelize如何实现数据库的读写分离
Oct 23 Javascript
IntelliJ IDEA编辑器配置vue高亮显示
Sep 26 Javascript
原生js实现文件上传、下载、封装等实例方法
Jan 05 Javascript
js数组相减简单示例【删除a数组所有与b数组相同元素】
Mar 04 Javascript
vue+axios全局添加请求头和参数操作
Jul 24 Javascript
jQuery实现日历效果
Sep 11 jQuery
详解Vue项目的打包方式(生成dist文件)
Jan 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
中东人咖啡哲学
2021/03/03 咖啡文化
zf框架的数据库追踪器使用示例
2014/03/13 PHP
PHP之uniqid()函数用法
2014/11/03 PHP
打豆豆小游戏 用javascript编写的[打豆豆]小游戏
2013/01/08 Javascript
jQuery实现拼图小游戏(实例讲解)
2017/07/24 jQuery
微信小程序模版渲染详解
2018/01/26 Javascript
js技巧之十几行的代码实现vue.watch代码
2018/06/09 Javascript
Vue 理解之白话 getter/setter详解
2019/04/16 Javascript
[02:50]【扭转乾坤,只此一招】DOTA2全新版本永雾林渊开启新篇章
2020/12/24 DOTA
linux系统使用python获取cpu信息脚本分享
2014/01/15 Python
跟老齐学Python之有容乃大的list(2)
2014/09/15 Python
python实现DES加密解密方法实例详解
2015/06/30 Python
使用Nginx+uWsgi实现Python的Django框架站点动静分离
2016/03/21 Python
利用Python如何生成随机密码
2016/04/20 Python
Python冒泡排序注意要点实例详解
2016/09/09 Python
一道python走迷宫算法题
2018/01/22 Python
Python实现的根据文件名查找数据文件功能示例
2018/05/02 Python
用Python实现大文本文件切割的方法
2019/01/12 Python
使用python判断jpeg图片的完整性实例
2019/06/10 Python
Python绘图Matplotlib之坐标轴及刻度总结
2019/06/28 Python
Python 网络编程之UDP发送接收数据功能示例【基于socket套接字】
2019/10/11 Python
解决Python3下map函数的显示问题
2019/12/04 Python
python递归函数用法详解
2020/10/26 Python
三陽商会官方网站:Sanyo iStore
2019/05/15 全球购物
华为消费者德国官方网站:HUAWEI德国
2020/11/03 全球购物
奥地利手表、香水、化妆品和珠宝购物网站:Brasty.at
2021/01/17 全球购物
古汉语文学求职信范文
2014/03/16 职场文书
小班幼儿评语大全
2014/04/30 职场文书
义和团口号
2014/06/17 职场文书
奶茶店创业计划书
2014/08/14 职场文书
先进典型发言材料
2014/12/30 职场文书
物业前台接待岗位职责
2015/04/03 职场文书
主题班会开场白
2015/06/01 职场文书
退休教师追悼词
2015/06/23 职场文书
《将心比心》教学反思
2016/02/23 职场文书
Beekeeper Studio开源数据库管理工具比Navicat更炫酷
2022/06/21 数据库