微信开发这块,作为开发工程师来说,一般是避免不了的,也好像发现一些朋友写微信分享都是在每个页面一大把一大把的代码。

代码冗余,即便是复制过来再改也很麻烦。

之前自己封装了一下js,今天来分享一下,希望能给看到的园友带来一点思路,当然希望能帮忙一起改进。

我的思路:

  1.可以分享到四个地方QQ,朋友,朋友圈,微博,一般情况下他们是一致的,可以配置一个初始参数,赋值给它们四个

  2.如果出现不一致,因为前面已经赋值了初始参数,这时再把需要不一致的内容替换掉

实现主要代码:

setData: function(){
var self = this;
self.data = {
title: self.title,
desc: self.desc,
link: self.link,
imgUrl: self.imgUrl,
type: self.type, // 分享类型,music、video或link,不填默认为link
dataUrl: self.dataUrl, // 如果type是music或video,则要提供数据链接,默认为空
success: self.success,
cancel: self.cancel
};
//深度克隆
self.QQData = JSON.stringify(self.data);
self.QQData = JSON.parse(self.QQData);
self.TimeLineData = JSON.stringify(self.data);
self.TimeLineData = JSON.parse(self.TimeLineData);
self.WeiBoData = JSON.stringify(self.data);
self.WeiBoData = JSON.parse(self.WeiBoData);

      //反序列化
      self.QQData.success = self.success;
       self.TimeLineData.success = self.success;
          self.WeiBoData.success = self.success;
          self.QQData.cancel = self.cancel;
          self.TimeLineData.cancel = self.cancel;
          self.WeiBoData.cancel = self.cancel;

    }

wx.ready(function(){
  wx.showOptionMenu();
  if(self.data == '') self.setData();
  wx.onMenuShareQQ(self.QQData);
  wx.onMenuShareAppMessage(self.data);
  wx.onMenuShareTimeline(self.TimeLineData);
  wx.onMenuShareWeibo(self.WeiBoData);

});

使用帮助:

var wxshare = require('wxshare.js');

如果分享的内容都一致

wxshare.link = '';
wxshare.desc = '';
wxshare.imgUrl = '';
wxshare.type = '';
wxshare.dataUrl = '';
wxshare.start();

如果有不一致,针对不一致的地方进行修改

wxshare.link = '';
wxshare.title = '';
wxshare.desc = '';
wxshare.imgUrl = ''; wxshare.setData();//必须加上
wxshare.TimeLineData.title = '';
wxshare.QQData.desc = '';
wxshare.start();

重点说明: setData()

如果全部的分享内容都一样,直接执行start(), 判断data参数空为true,会执行setData(),
为四个分享赋值:QQData data TimeLineData WeiboData, 而后初始化

如果有不一致,首次赋值后,直接调用setData(),为四个参数赋值,之后再根据需求修改不同的对应参数,最后start()初始化。

--------------------------------------------------------------------------------------------------------------------------------------------

具体代码 github 地址:  >>>>>>>>>>戳我、戳我、戳我、戳我、戳我<<<<<<<<<<<<

JS微信分享不好写?来封装一下的更多相关文章

  1. js 微信分享

    一. //js接口 var shareme; var urls = window.location.href; if(isWeiXin()){   var weifileref=document.cr ...

  2. javascript获取wx.config内部字段解决微信分享

    转自:http://www.jb51.net/article/80679.htm 专题推荐:js微信开发_脚本之家 http://www.jb51.net/Special/879.htm 背景在微信分 ...

  3. php框架tp3.2.3和js写的微信分享功能心得,分享的标题内容图片自定义

    https://blog.csdn.net/weixin_42231483/article/details/81585322 最近用PHP的tp3.2.3框架和js写的微信分享功能心得,分享的标题内容 ...

  4. 封装微信分享到朋友/朋友圈js

    在页面引入: <script src="/static/lib/jquery-2.2.2.min.js"></script><script src=& ...

  5. 微信分享JS接口失效说明及解决方案

    关键字:微信分享 JS 失效  分享到朋友圈 微信分享JS接口目前已失效,以前可以自定义分享的标题.描述.图片.链接地址在微信6.0.2版本中失效. 官方回复如下: 旧版的获取分享状态及设置分享内容的 ...

  6. 微信开发(2):微信js sdk分享朋友圈,朋友,获取config接口注入权限验证(转)

    进行微信开发已经一阵子了,从最初的什么也不懂,到微信授权登录,分享,更改底部菜单,素材管理,等. 今天记录一下微信jssdk 的分享给朋友的功能,获取config接口注入. 官方文档走一下简单说:四步 ...

  7. js实现通用的微信分享组件示例

    一.可定义的信息 1.分享时显示的LOGO:2.分享LOGO的宽度:3.分享LOGO的高度:4.分享出去显示的标题(默认调用网页标题):5.分享出去显示的描述(默认调用网页标题):6.分享链接(默认为 ...

  8. weixinShare.js / 极简微信分享插件

    weixinShare.js / 极简微信分享插件 / 版本:0.1 这是一个很简单.很实用的微信分享插件,无需jQuery,只需要在网页里加入一行JS代码,即可自动识别微信浏览器并启动微信分享的提示 ...

  9. vue 使用vux封装的微信分享

    main.js引入 import {WechatPlugin} from 'vux' Vue.use(WechatPlugin) 公共的jswxShare.js import Vue from 'vu ...

随机推荐

  1. 远哥教你MuleESB系列视频教程

    远哥教你MuleESB系列视频课程介绍(共11个视频) —1.Mule ESB介绍 —2.社区版/企业版的区别和安装 —3.MuleESB快速入门,以及MEL和Message结构 —4.官方例子讲解( ...

  2. 电子病历,到底是用BS还是CS

    电子病历,到底是用BS还是CS 袁永福 2014-8-19 前言:前几天下午去开发医疗软件的S公司,旁听了他们的内部技术讨论会议.他们目前的电子病历是B/S架构,会上一群人讨论起用C/S重构电子病历系 ...

  3. Search-ADaccount

    查询被锁定用户 Search-ADAccount -LockedOut | FT Name,ObjectClass -A Search-ADAccount Search-ADAccount Gets ...

  4. centos 开启启动服务优化

    默认开机启动服务列表:(此表转自 http://www.ha97.com/4815.html,另有多处补充) 服务名称 功能  默认   建议  备注说明 NetworkManager 用于自动连接网 ...

  5. 【卡西欧Fx-5800p】市场分析 ppt

    一.ppt视频 二.大概内容 1:2010年的4万亿救市政策和 2011年4月后财政收缩政策 2:2011-7-23温州动车追尾事故70%的公路高铁等基础建设项目停缓建 ·····

  6. Becoming a Data Scientist – Curriculum via Metromap

    From: http://nirvacana.com/thoughts/becoming-a-data-scientist/ Data Science, Machine Learning, Big D ...

  7. Android 模拟器检测

    参考链接:https://github.com/MindMac/HideAndroidEmulator 从多个方面识别模拟器1.用户习惯:联系人数量.短信数量.相册里面照片数量.安装的应用2.从IME ...

  8. Vim 练级攻略

    以下的文章翻译自<Learn Vim Progressively>,我认为这是给新手最好的VIM的升级教程了,没有列举全部的命令,仅仅是列举了那些最实用的命令. 很不错. -------- ...

  9. window_x64微信小程序环境搭建

    所需文件地址如下: http://pan.baidu.com/s/1nv0IHhn(ylk7)   1.下载微信开发工具0.7.0_x64 安装完成后,打开程序,进行微信扫码登录 2.下载微信开发工具 ...

  10. lxde桌面默认快捷键

    ctrl+alt+左右      选择左右桌面shift+alt+左右     当前窗口送至左右桌面房子键+F1~F4       切换桌面1-4房子键+d           显示桌面alt+esc ...