哇哦!恍然大悟般的“share”功能的实现!
有一个问题一直困扰着我,也是我一直没有时间去了解和学习的,那就是前端(移动端)实现分享到微信、QQ好友、QQ空间、新浪微博等等平台的功能实现,虽然之前有做过,但是都是上一个领导自己写好的,我直接拿来用的,昨天下班就有给自己预定一个明日计划,一是完成前一天领导安排的页面,二是学习并理解前端分享功能的实现!
上午九点到公司后就去完成了前一天遗留的页面问题,解决完了之后就投入到了“share”问题上来了,一直在网上查询相关资料以及在技术群里问了相关人员,但是还是没有得到我想要的结果,终于在网上搜索得到了很好的答案!
功夫不负有心人,最终得到了我比较满意的答案!
之前就有自己私下写过前端实现分享的demo,是利用的百度分享实现的,而这就出现了一个问题就是百度分享并不支持移动端页面,下面简单来看一个百度分享实现的分享功能的demo:
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0, user-scalable=0, minimum-scale=1.0, maximum-scale=1.0">
<title>百度分享功能的实现</title>
</head>
<body>
<h3>直接使用百度分享</h3>
<div class="bdsharebuttonbox">
<a href="#" class="bds_more" data-cmd="more"></a>
<a href="#" class="bds_weixin" data-cmd="weixin" title="分享到微信"></a>
<a href="#" class="bds_tsina" data-cmd="tsina" title="分享到新浪微博"></a>
<a href="#" class="bds_qzone" data-cmd="qzone" title="分享到QQ空间"></a>
<a href="#" class="bds_tqq" data-cmd="tqq" title="分享到腾讯微博"></a>
</div>
<script>
window._bd_share_config = {
"common": {
"bdSnsKey": {},
"bdText": "",
"bdMini": "2",
"bdMiniList": false,
"bdPic": "",
"bdStyle": "0",
"bdSize": "32"
},
"share": {},
"image": {
"viewList": ["weixin", "tsina", "qzone", "tqq"],
"viewText": "分享到:",
"viewSize": "16"
},
"selectShare": {
"bdContainerClass": null,
"bdSelectMiniList": ["weixin", "tsina", "qzone", "tqq"]
}
};
with(document) 0[(getElementsByTagName('head')[0] || body).appendChild(createElement('script')).src = 'http://bdimg.share.baidu.com/static/api/js/share.js?v=89860593.js?cdnversion=' + ~(-new Date() / 36e5)];
</script>
</body>
</html>
效果如下:
好了,百度分享相关的就说到这了,你可以参考官方网站。
直接获取代码或,根据自己的需要修改相应的项即可,它主要用于pc端的比较多,移动端的话需要自己去调整页面的适配问题也就是样式展现问题!
那么接下来回到我理想的sharesdk上来,官网链接为:http://sharesdk.mob.com/
点击立即使用,登录/注册、然后接下来的首要任务就是获取项目的APP key以及APP secret。这两很重要!因为页面中要用到。
你只要添加产品,添加项目名称,然后获取APP key以及APP secret。(这里我已经建立了的一个产品名称为wapTest的项目,也可以建立多个根据你自己的需要,不过一般一个就够用,而且公司开发的话用的也是公司的不是自己的。)
到这里基础的准备工作就完了,接下来就是基础案例的展示:
API文档也有介绍!进入到集成文档中心:
http://wiki.mob.com/%E5%BF%AB%E9%80%9F%E9%9B%86%E6%88%90-13/
下边直接来看两个demo代码吧!
Demo1:
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0, user-scalable=0, minimum-scale=1.0, maximum-scale=1.0">
<title>标题</title>
</head>
<body>
你的网站内容部分!
<hr />
<!--MOB SHARE BEGIN-->
<div class="-mob-share-ui-button -mob-share-open">分享</div>
<div class="-mob-share-ui" style="display: none">
<ul class="-mob-share-list">
<li class="-mob-share-weixin"><p>微信</p></li>
<li class="-mob-share-weibo"><p>新浪微博</p></li>
<li class="-mob-share-qzone"><p>QQ空间</p></li>
<li class="-mob-share-qq"><p>QQ好友</p></li>
<li class="-mob-share-douban"><p>豆瓣</p></li>
<li class="-mob-share-facebook"><p>Facebook</p></li>
<li class="-mob-share-twitter"><p>Twitter</p></li>
</ul>
<div class="-mob-share-close">取消</div>
</div>
<div class="-mob-share-ui-bg"></div>
<script id="-mob-share" src="http://f1.webshare.mob.com/code/mob-share.js?appkey=1feac3bd7169c"></script>
<!--MOB SHARE END-->
</body>
</html>
效果:
点击分享按钮弹出:
Demo2:
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0, user-scalable=0, minimum-scale=1.0, maximum-scale=1.0">
<title>mob.com2Test</title>
</head>
<body>
<!--MOB SHARE BEGIN-->
<div class="-mob-share-ui-button -mob-share-open">分享</div>
<div class="-mob-share-ui" style="display: none">
<ul class="-mob-share-list">
<li class="-mob-share-weibo"><p>新浪微博</p></li>
<li class="-mob-share-qzone"><p>QQ空间</p></li>
<li class="-mob-share-qq"><p>QQ好友</p></li>
</ul>
<div class="-mob-share-close">取消</div>
</div>
<div class="-mob-share-ui-bg"></div>
<script id="-mob-share" src="http://f1.webshare.mob.com/code/mob-share.js?appkey=1feac3bd7169c"></script>
<script>
mobShare.config({
debug: true, // 开启调试,将在浏览器的控制台输出调试信息
appkey: '1feac3bd7169c', // appkey
params: {
url: 'http://192.168.0.173:8020/share2-xiugai/mob.com2.html', // 分享链接
title: '这是mob.com2案例的分享标题', // 分享标题
description: '分享描素的话-比如:【赚钱】独创运营模式,全方位指导,专业团队,引领世界共创富,分红全球购打造亿万大众创富梦想的平台,财富等您加入!!!', // 分享内容
pic: 'https://gss3.bdstatic.com/7Po3dSag_xI4khGkpoWK1HF6hhy/baike/s%3D220/sign=82bbf1638bcb39dbc5c06054e01709a7/728da9773912b31bef2e58a08c18367adbb4e1fd.jpg', // 分享图片,使用逗号,隔开
reason: '自定义评论内容,只应用与QQ,QZone与朋友网-比如:真棒!!!', //自定义评论内容,只应用与QQ,QZone与朋友网
}, /**
* 分享时触发的回调函数
* 分享是否成功,目前第三方平台并没有相关接口,因此无法知道分享结果
* 所以此函数只会提供分享时的相关信息
*
* @param {String} plat 平台名称
* @param {Object} params 实际分享的参数 { url: 链接, title: 标题, description: 内容, pic: 图片连接 }
*/
callback: function(plat, params) {
//回调函数执行其他的处理(根据需要添加自己自定义的内容)
if(plat=='qq'){
sharetype=2;
}else if(plat=='weixin'){
sharetype=5;
}else if(plat=='qzone'){
sharetype=6;
}else if(plat=='weibo'){
sharetype=3;
}else{
sharetype=9;
}
}
});
</script>
<!--MOB SHARE END-->
</body>
</html>
效果:(和上边类似)
那么到这里,关于前端分享的基础实现也算完成了,这里只是简单的介绍如何使用以及使用的平台,还有更多需要自己去更改的地方,在以后的学习中再去解决吧!!加油! 像是了却一桩心事般,让人心情瞬间有几分欣喜!
哇哦!恍然大悟般的“share”功能的实现!的更多相关文章
- hexo next主题深度优化(四),自定义一个share功能,share.js。
文章目录 背景: 开始: 引入资源: 代码 关键的一步 附:方便学习的小demo 一次成功后还出现上面的bug 结束 2018.12.23发现bug(读者可忽略) 个人博客:https://mmmmm ...
- 给Webkit内核的浏览器控件增加互交功能
转载请说明出处,谢谢~~ 昨天封装了基于webkit的wke浏览器内核,做成了duilib的浏览器控件,实现了浏览功能,但是单单的浏览功能还不满足需求,在我的仿酷狗项目中乐库的功能需要与浏览器互交. ...
- Visual Studio 2019 正式发布,重磅更新,支持live share
如约而至,微软已于今天推出 Visual Studio 2019 正式版,一同发布的还有 Visual Studio 2019 for Mac. Visual Studio 2019 下载地址:htt ...
- Visual Studio 2019 使用 Live Share
一.前言 Visual Studio 2019 在今天发布(北京时间)了,这次带来了一个比较有趣的 Live Share 功能,使用它可以进行更好的协作开发.主要功能: 更多资料可看官方介绍: Vis ...
- 个人小项目——Java实现WC功能
这个小项目用了两种方法解决了该功能的实现. 1.两种方法的功能和具体实现 代码可以成功运行,但是有一些情况考虑不完整,一种方法用了FileOutputStream输出流,为了解决空格无法统计问题,对文 ...
- 个人永久性免费-Excel催化剂功能第89波-批量多图片转PDF
前一篇展示了从PDF中提取到有用信息如图片.文本.表格等功能,部分人可能对自己手中的转PDF格式的保护性有所顾虑,此篇从反向角度,提供数据保护作用,让PDF文件的数据保护更彻底,让文本型的PDF文件彻 ...
- Vagrant 入门 - share
原文地址 译者注:Vagrant Share 功能通过 ngrok 向所有人提供访问内网开发环境的能力. 现在我们已经启动并运行了一台 Web 服务器,并且可以从你的机器访问,我们拥有一个相当实用的开 ...
- facebook api介绍
转自(http://sls.weco.net/node/10773) 一.Facebook API 基礎概念 Facebook API 概論 : API 最大的好處在於可以讓程式開發人員只需要根據 A ...
- DOS程序员手册(九)
第14章参考手册概述 本书余下的章节将向读者们介绍BIOS.DOS各种各样API函数和服务,作为一名程 序员,了解和掌握这些知识是很有好处的.在所介绍的参考手册中,每部手册都汇集了大 量的资源 ...
随机推荐
- Appium+python自动化21-DesiredCapabilities详解【转载】
Appium Desired Capabilities Desired Capabilities 是由 keys 和 values 组成的 JSON 对象. 举个简单例子: { "platf ...
- Laravel中setAttribute和queryScope的用法
setAttribute使用场景: 数据在存入数据库的时候需要进行预先处理,每次都会写很多重复代码,使用 setAttribute之后就可以在数据填充时自动完成. setAttribute的写法:se ...
- HDU 6112.今夕何夕-蔡勒公式 (2017"百度之星"程序设计大赛 - 初赛(A)1005)
1005:今夕何夕 Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others) Probl ...
- poj3264(Sparse-Table 算法模板)
poj3264 题意 询问区间最大值最小值之差. 分析 dp_max[i][j] 表示以 i 为起点,长度为 \(2^j\) 的区间最大值. 利用递推预处理出区间最大值最小值. code #inclu ...
- javap -c 字节码含义
aconst_null 将null对象引用压入栈 iconst_m1 将int类型常量-1压入栈 iconst_0 将int类型常量0压入栈 icons ...
- jsp homework(*)
3.编写一个JSP程序实现手表的功能,显示当前时间(时:分:秒),并不停地自动刷新时间. 方法一[scriptlet] <%@ page language="java" im ...
- tcp 三次握手和四次断连深入分析:连接状态和socket API的关系----BAT 李运华
http://blog.csdn.net/yunhua_lee/article/details/40513677 http://blog.csdn.net/yah99_wolf/article/cat ...
- [置顶]
kubernetes资源类型--DaemonSet
概念 DaemonSet能够让所有(或者特定)的节点运行同一个pod. 当节点加入到K8S集群中,pod会被(DaemonSet)调度到该节点上运行,当节点从K8S集群中被移除,被DaemonSet调 ...
- 设计模式之原型模式(php实现)
github地址:https://github.com/ZQCard/design_pattern1.先了解什么是浅拷贝与深拷贝 //深拷贝:赋值时值完全复制,完全的copy,对其中一个作出改变,不会 ...
- 在vs2012中配置使用iisexpress
在vs2012中配置使用iisexpress vs2012支持基于iisexpress的web站点调试,这样可以尽可能与生产环境具备一样的环境. 但是,如果在vs2012中直接配置iis目录,通常 ...