title | date | tags | categories | ||
---|---|---|---|---|---|
分享按钮功能的实现 |
2018-09-05 10:07:22 -0700 |
|
|
今天需要实现一个点击按钮进行分享的功能,而且需要是多平台,之前了解过应该是通过调用各个平台的api进行实现的,没办法,去网上找找方法吧。
首先找个Facebook的实现看看效果,当你只是想分享一个链接到facebook中的时候,我们只需要将分享的url作为参数的形式传递到facebook网站即可,如下:
当然也可以当成参数的形式传递:
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<meta http-equiv="X-UA-Compatible" content="ie=edge">
<title>Document</title>
</head>
<body>
<input id="share_button" type="button" value="share to facebook" />
<script type="text/JavaScript">
function popupwindow(url, title, w, h) {
wLeft = window.screenLeft ? window.screenLeft : window.screenX;
wTop = window.screenTop ? window.screenTop : window.screenY;
var left = wLeft + (window.innerWidth / 2) - (w / 2);
var top = wTop + (window.innerHeight / 2) - (h / 2);
return window.open(url, title, 'toolbar=no, location=no, directories=no, status=no, menubar=no, scrollbars=no, resizable=no, copyhistory=no, width=' + w + ', height=' + h + ', top=' + top + ', left=' + left);
}
window.onload = function () {
document.getElementById('share_button').onclick = function(){
var shareUrl = "http://www.facebook.com/sharer/sharer.php?u=https://www.google.com";
popupwindow(shareUrl, 'Facebook', 600, 400);
}
}
</script>
</body>
</html>
上面虽然分享成功了,但是分享的内容显得很死板,只有一些文字,如何自定义我们的内容呢?我们需要在被分享的网站的页面上添加一些meta
标签,facebook会自己从所分享的页面上去抓取这些标签里的内容,你可以自定义图片、描述等等。
在定义了这些之后就更加生动了:
<meta property="og:title" content="百度">
<meta property="og:type" content="website">
<meta property="og:image" content="www.baidu.com/img/bd_logo1.png">
<meta property="og:description" content="百度一下,你就知道">
当然,你可能想动态的去生成这些东西,这就复杂一些,需要用到facebook中的Javascript SDK:
<script>
window.fbAsyncInit = function() {
FB.init({
appId : 'your-app-id',
autoLogAppEvents : true,
xfbml : true,
version : 'v2.10'
});
FB.AppEvents.logPageView();
};
(function(d, s, id){
var js, fjs = d.getElementsByTagName(s)[0];
if (d.getElementById(id)) {return;}
js = d.createElement(s); js.id = id;
js.src = "//connect.facebook.net/en_US/sdk.js";
fjs.parentNode.insertBefore(js, fjs);
}(document, 'script', 'facebook-jssdk'));
</script>
在他们的官网可以看更多。
我们还可以通过facebook develop来检测你要分享的网站的效果,并且在这里可以生成使用sdk所需要的appid,而且可以在这里看到网址的被转发数,点击数之类的。
这样就完成facebook的分享功能了,但他喵的是不是也太麻烦了,果断找找有没有别的方法,难道你还真以为我会一个个写下去!!!???结果还真找到了一个方法,那就是Mob上面的ShareSDK啦。
怎么实现?首先在里面找到你需要的简单的,首先在下图中找到你要的,然后傻瓜式写代码就行了
<!--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>
<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=你的appkey"></script>
<!--MOB SHARE END-->
这是最简单的一种,至于怎么扩展,文档写的很清楚,也很傻瓜式,我就不再傻瓜式的写出来了,影响我的形象。啦啦啦啦!!!