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


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 相关文章推荐
关于B/S判断浏览器断开的问题讨论
Oct 29 Javascript
javascript获取元素离文档各边距离的方法
Feb 13 Javascript
js判断输入字符串是否为空、空格、null的方法总结
Jun 14 Javascript
js实现多图左右切换功能
Aug 04 Javascript
jquery表单提交带错误信息提示效果
Mar 09 Javascript
浅谈React Event实现原理
Sep 20 Javascript
vue-cli3+typescript初体验小结
Feb 28 Javascript
Element-ui DatePicker显示周数的方法示例
Jul 19 Javascript
javascript面向对象创建对象的方式小结
Jul 29 Javascript
微信小程序实现点击卡片 翻转效果
Sep 04 Javascript
layui固定下拉框的显示条数(有滚动条)的方法
Sep 10 Javascript
vue 授权获取微信openId操作
Nov 13 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可能遇到的问题“无法载入mysql扩展” 的解决方法
2007/04/16 PHP
php 空格,换行,跳格使用说明
2009/12/18 PHP
Fatal error: Call to undefined function curl_init()解决方法
2010/04/09 PHP
PHP ajax 异步执行不等待执行结果的处理方法
2015/05/27 PHP
php htmlentities()函数的定义和用法
2016/05/13 PHP
火狐下table中创建form导致两个table之间出现空白
2013/09/02 Javascript
javascript中解析四则运算表达式的算法和示例
2014/08/11 Javascript
jQuery中toggleClass()方法用法实例
2015/01/05 Javascript
jQuery遮罩层实现方法实例详解(附遮罩层插件)
2015/12/08 Javascript
关于数据与后端进行交流匹配(点亮星星)
2016/08/03 Javascript
输入法的回车与消息发送快捷键回车的冲突解决方法
2016/08/09 Javascript
JS弹性运动实现方法分析
2016/12/15 Javascript
Javascript中类式继承和原型式继承的实现方法和区别之处
2017/04/25 Javascript
angularjs项目的页面跳转如何实现(5种方法)
2017/05/25 Javascript
JS实现提交表单前的数字及邮箱校检功能
2017/11/13 Javascript
微信小程序使用checkbox显示多项选择框功能【附源码下载】
2017/12/11 Javascript
微信小程序使用progress组件实现显示进度功能【附源码下载】
2017/12/12 Javascript
JavaScript 跨域之POST实现方法
2018/05/07 Javascript
JS实现动态生成html table表格的方法分析
2018/07/11 Javascript
vue项目前端埋点的实现
2019/03/06 Javascript
js实现百度淘宝搜索功能
2020/02/17 Javascript
Python中利用原始套接字进行网络编程的示例
2015/05/04 Python
python利用sklearn包编写决策树源代码
2017/12/21 Python
Python实现针对给定字符串寻找最长非重复子串的方法
2018/04/21 Python
解决python大批量读写.doc文件的问题
2018/05/08 Python
Python集成开发工具Pycharm的安装和使用详解
2020/03/18 Python
python中使用.py配置文件的方法详解
2020/11/23 Python
java关于string最常出现的面试题整理
2021/01/18 Python
个人收入证明范本
2014/01/12 职场文书
学生周末长期请假条
2014/02/15 职场文书
《夏夜多美》教学反思
2014/02/17 职场文书
授权收款委托书范本
2014/10/10 职场文书
教师查摆问题自查报告
2014/10/11 职场文书
七年级上册生物的课件
2019/08/07 职场文书
vue实现可拖拽的dialog弹框
2021/05/13 Vue.js
Vue如何清空对象
2022/03/03 Vue.js