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


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模拟的QQ面板上的多级可展开的菜单
Oct 10 Javascript
JS实现匀速运动的代码实例
Nov 29 Javascript
js插件设置innerHTML时在IE8下提示“未知运行时错误”解决方法
Apr 25 Javascript
JQueryMiniUI按照时间进行查询的实现方法
Jun 07 jQuery
jQuery实现base64前台加密解密功能详解
Aug 29 jQuery
BACKBONE.JS 简单入门范例
Oct 17 Javascript
浅谈vue中改elementUI默认样式引发的static与assets的区别
Feb 03 Javascript
JavaScript轮播停留效果的实现思路
May 24 Javascript
详解Vue结合后台的列表增删改案例
Aug 21 Javascript
jQuery实现聊天对话框
Feb 08 jQuery
Node.js API详解之 util模块用法实例分析
May 09 Javascript
vue项目实现设置根据路由高亮对应的菜单项操作
Aug 06 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下intval()和(int)转换使用与区别
2008/07/18 PHP
PHP Undefined index报错的修复方法
2011/07/17 PHP
Laravel框架文件上传功能实现方法示例
2019/04/16 PHP
Javascript操纵Cookie实现购物车程序
2007/02/15 Javascript
javascript 清空form表单中某种元素的值
2009/12/26 Javascript
分享一个asp.net pager分页控件
2012/01/04 Javascript
jQuery插件开发全解析
2012/10/10 Javascript
Javascript中的Callback方法浅析
2015/03/15 Javascript
javascript中call apply 与 bind方法详解
2016/03/10 Javascript
[原创]Bootstrap 中下拉菜单修改成鼠标悬停直接显示
2016/04/14 Javascript
Angular.Js的自动化测试详解
2016/12/09 Javascript
js点击时关闭该范围下拉菜单之外的菜单方法
2018/01/11 Javascript
浅谈微信小程序之官方UI框架we-ui使用教程
2018/08/20 Javascript
js事件on动态绑定数据,绑定多个事件的方法
2018/09/15 Javascript
jQuery实现的简单日历组件定义与用法示例
2018/12/24 jQuery
React 实现车牌键盘的示例代码
2019/12/20 Javascript
JavaScript实现动态生成表格
2020/08/02 Javascript
简单说明Python中的装饰器的用法
2015/04/24 Python
Python中atexit模块的基本使用示例
2015/07/08 Python
Django实现自定义404,500页面教程
2017/03/26 Python
详解python里使用正则表达式的全匹配功能
2017/10/19 Python
Python使用指定端口进行http请求的例子
2019/07/25 Python
python处理document文档保留原样式
2019/09/23 Python
python使用梯度下降算法实现一个多线性回归
2020/03/24 Python
python使用ctypes库调用DLL动态链接库
2020/10/22 Python
艺术家策划的室内设计:Curious Egg
2019/03/06 全球购物
大二自我鉴定
2014/01/31 职场文书
新员工试用期自我鉴定
2014/04/17 职场文书
机械专业求职信
2014/05/25 职场文书
公务员年度考核登记表个人总结
2015/02/12 职场文书
员工辞退通知书
2015/04/17 职场文书
团日活动总结格式
2015/05/11 职场文书
环境卫生标语
2015/08/03 职场文书
会计做账心得体会
2016/01/22 职场文书
小学作文指导之如何写人?
2019/07/08 职场文书
css3中2D转换之有趣的transform形变效果
2022/02/24 HTML / CSS