JS微信分享不好写?来封装一下
微信开发这块,作为开发工程师来说,一般是避免不了的,也好像发现一些朋友写微信分享都是在每个页面一大把一大把的代码。
代码冗余,即便是复制过来再改也很麻烦。
之前自己封装了一下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微信分享不好写?来封装一下的更多相关文章
- js 微信分享
一. //js接口 var shareme; var urls = window.location.href; if(isWeiXin()){ var weifileref=document.cr ...
- javascript获取wx.config内部字段解决微信分享
转自:http://www.jb51.net/article/80679.htm 专题推荐:js微信开发_脚本之家 http://www.jb51.net/Special/879.htm 背景在微信分 ...
- php框架tp3.2.3和js写的微信分享功能心得,分享的标题内容图片自定义
https://blog.csdn.net/weixin_42231483/article/details/81585322 最近用PHP的tp3.2.3框架和js写的微信分享功能心得,分享的标题内容 ...
- 封装微信分享到朋友/朋友圈js
在页面引入: <script src="/static/lib/jquery-2.2.2.min.js"></script><script src=& ...
- 微信分享JS接口失效说明及解决方案
关键字:微信分享 JS 失效 分享到朋友圈 微信分享JS接口目前已失效,以前可以自定义分享的标题.描述.图片.链接地址在微信6.0.2版本中失效. 官方回复如下: 旧版的获取分享状态及设置分享内容的 ...
- 微信开发(2):微信js sdk分享朋友圈,朋友,获取config接口注入权限验证(转)
进行微信开发已经一阵子了,从最初的什么也不懂,到微信授权登录,分享,更改底部菜单,素材管理,等. 今天记录一下微信jssdk 的分享给朋友的功能,获取config接口注入. 官方文档走一下简单说:四步 ...
- js实现通用的微信分享组件示例
一.可定义的信息 1.分享时显示的LOGO:2.分享LOGO的宽度:3.分享LOGO的高度:4.分享出去显示的标题(默认调用网页标题):5.分享出去显示的描述(默认调用网页标题):6.分享链接(默认为 ...
- weixinShare.js / 极简微信分享插件
weixinShare.js / 极简微信分享插件 / 版本:0.1 这是一个很简单.很实用的微信分享插件,无需jQuery,只需要在网页里加入一行JS代码,即可自动识别微信浏览器并启动微信分享的提示 ...
- vue 使用vux封装的微信分享
main.js引入 import {WechatPlugin} from 'vux' Vue.use(WechatPlugin) 公共的jswxShare.js import Vue from 'vu ...
随机推荐
- Android BitmapShader 实战 实现圆形、圆角图片
转载自:http://blog.csdn.net/lmj623565791/article/details/41967509 1.概述 记得初学那会写过一篇博客Android 完美实现图片圆角和圆形( ...
- MAT(Memory Analyzer Tool)工具入门介绍(转)
1.MAT是什么? MAT(Memory Analyzer Tool),一个基于Eclipse的内存分析工具,是一个快速.功能丰富的JAVA heap分析工具,它可以帮助我们查找内存泄漏和减少内存消耗 ...
- Python多线程编程之多线程加锁
Python语言本身是支持多线程的,不像PHP语言. 下面的例子是多个线程做同一批任务,任务总是有task_num个,每次线程做一个任务(print),做完后继续取任务,直到所有任务完成为止. #co ...
- mybatis connection error Cannot create PoolableConnectionFactory (Access denied for user 'root '@'local
org.mybatis.spring.MyBatisSystemException: nested exception is org.apache.ibatis.exceptions.Persiste ...
- C#中将结构类型数据存储到二进制文件中方法
以往在vb6,vc6中都有现成的方法将结构类型数据写入和读取到二进制文件中,但是在c#中却没有现成的方法来实现,因此我查阅了一些资料,借鉴了网上一些同学的做法,自己写了个类似的例子来读写结构类型数据到 ...
- Microsoft.VisualBasic.DateAndTime.Timer 与 DateTime.Now.TimeOfDay.TotalSeconds 相当
如题,示例如下: Console.WriteLine(DateTime.Now.TimeOfDay.TotalSeconds); Console.WriteLine(Microsoft.VisualB ...
- 特征工程(Feature Enginnering)学习记要
最近学习特征工程(Feature Enginnering)的相关技术,主要包含两块:特征选取(Feature Selection)和特征抓取(Feature Extraction).这里记录一些要点 ...
- A CIRCULAR PROGRESSBAR STYLE USING AN ATTACHED VIEWMODEL
This blog post describes how to re-template the Silverlight ProgressBar control to render a circular ...
- 在Oracle Linux Server release 6.4下配置ocfs2文件系统
① 安装ocfs-tools-1.8 如果是使用RedHat Enterprise Linux 6.4,也可以安装ocfs-tools-1.8的,只是要插入Oracle Linux Server re ...
- android studio 翻译插件
插件下载地址 https://github.com/Skykai521/ECTranslation/releases 使用说明: http://gold.xitu.io/entry/573d8d92a ...