移动端折腾国外分享(facebook、twitter、linkedin)
一、前言
国内做HTML5页面,关注最多就是微信分享了,之前也写过关于微信分享的文章,可以点击查看:分享相关文章
再者,就是国内的其它分享,比如常用的新浪微博、腾讯微博、QQ空间等等,最方便的就是直接用百度的分享插件,但是在移动端感觉这个插件太多了,没必要,而且还要请求baidu。后来发现,这些分享其实都可以通过url的参数来实现,拿一些常用的分享举个例子:
var shareInfo = { title:'【'+$('.title h1').html()+"】",//分享标题 desc:$('meta[name="description"]').attr('content'),//分享正文 url:window.location.href,//分享URL imgurl:$('.entry img').eq(0).attr('src')//分享图片}$("#bdshare_warp .bds_tsina").click(function() {//新浪微博 var _uri = "http://service.weibo.com/share/share.php?c=w3cmark&content=utf-8&source=w3cmark&title=" + encodeURIComponent(shareInfo.title + shareInfo.desc) + "&url=" + encodeURIComponent(shareInfo.url) + "&pic=" + encodeURIComponent(shareInfo.imgurl); window.open(_uri,'newwindow');});$("#bdshare_warp .bds_qzone").click(function() {//腾讯空间 var _uri = "http://sns.qzone.qq.com/cgi-bin/qzshare/cgi_qzshare_onekey?summary=前端笔记网&url=" + encodeURIComponent(shareInfo.url) + "&title=" + encodeURIComponent(shareInfo.title) + "&desc=" + encodeURIComponent(shareInfo.desc) + "&pics=" + encodeURIComponent(shareInfo.imgurl); window.open(_uri,'newwindow');});$("#bdshare_warp .bds_tqq").click(function() {//腾讯微博 var _uri = "http://share.v.t.qq.com/index.php?c=w3cmark&a=index&url=" + encodeURIComponent(shareInfo.url) + "&title=" + encodeURIComponent(shareInfo.title) + "&pics=" + encodeURIComponent(shareInfo.imgurl); window.open(_uri,'newwindow');}); |
这样自定义更加灵活方便,而且能够指定分享图片。
二、国外分享facebook、twitter、linkedin
上 周有机会接触到一个国外招聘页面,需要做国外的分享。做国外分享,还是第一次,大部分出名国外站点在国内都被墙了,几乎没关注过国外的分享,也不知道可以 做哪些分享。经过测试,后来只定了三个国外分享facebook、twitter、linkedin。类似于国内的分享,这些分享也是可以采用url拼接 参数的形式(在搜索过程,也发现了一些类似集合的插件,比如addthis)。折腾过期中也踩了不少坑,先上栗子核心代码:
$("#JfbBtn").click(function(){//facebook share var _uri = 'http://www.facebook.com/sharer.php?u='+encodeURIComponent(shareInfo.url)+'&t='+encodeURIComponent(shareInfo.title); window.location.href=_uri; }); $("#JtwBtn").click(function(){//twitter share var _uri = 'http://twitter.com/share?url='+encodeURIComponent(shareInfo.url) +'&text='+ encodeURIComponent(shareInfo.title); window.location.href=_uri; }); $("#JlkBtn").click(function(){//linkedin share var _uri = 'http://www.linkedin.com/shareArticle?mini=true&url='+encodeURIComponent(shareInfo.url) +'&title='+ encodeURIComponent(shareInfo.title); window.location.href=_uri; }); |
其中上面的shareInfo是相关的分享信息(分享标题、链接等),这里就不贴出来了。通过上面的代码可以看到,没有指定分享图片的参数(其中Facebook通过meta定义,在下文讲到),找了很久都没找到,如果有童鞋知道记得留言告知哈~
三、分享踩的坑
1、关于Facebook的分享图片
首先,Facebook分享是可以指定分享图片的,但是不能通过url参数拼接,需要通过定义meta标签,具体代码如下:
<!-- facebookShare --><meta property="og:image" content="http://www.w3cmark.com/demo/img/share.png"/><meta property="og:description" content="分享描述"/> <!-- facebookShare / --> |
另 外,这里还存在一个分享图片缓存问题。比如你一开始测试,用分享图片是share01.png这个图片,然后分享成功后显示的是这张图片没错。等你测试完 成了,换成真实的分享图片share.png,这时候如果你页面的地址(ps:本地测试时,是无法分享成功的)还是不变,那么你分享成功后的图片还是你的 测试图片share01.png。
为什么呢?后来发现,原因是Facebook分享是通过你的页面地址拿内容的(这也可以解释到为 什么本地测试是无法分享,因为本地地址无法访问),如果你地址不变,默认分享内容还是不变的,即使你点击分享时的弹窗内容是最新的,你分享成功后在 Facebook看到的还是旧的。解决方法就是在页面地址价格问号或者时间戳,让Facebook识别到你的最新内容。
2、关于Twitter的url拼接
一开始在做Twitter分享是,上网找的分享代码,都是url拼接有问题的,如图:

问题在于,写法都是status后面加链接和标题,这样分享出去之后会发现链接和标题连在一起,会出现把链接识别错误的问题的。后来看到Twitter开发文档,原来有url和tetx参数的,具体代码看上面的栗子即可。
移动端折腾国外分享(facebook、twitter、linkedin)的更多相关文章
- [转]Code! MVC 5 App with Facebook, Twitter, LinkedIn and Google OAuth2 Sign-on (C#)
本文转自:https://www.asp.net/mvc/overview/security/create-an-aspnet-mvc-5-app-with-facebook-and-google-o ...
- Code! MVC 5 App with Facebook, Twitter, LinkedIn and Google OAuth2 Sign-on (C#)
http://www.asp.net/mvc/overview/security/create-an-aspnet-mvc-5-app-with-facebook-and-google-oauth2- ...
- Sharing count on Facebook, Twitter, and LinkedIn
最近一段时间一直在研究有关Social Network的东西,这里有几个在当前国外主流社交网站上用来显示分享数量的API,记录一下,今后可能会用得着. Facebook Facebook将FQL(Fa ...
- 分享到twitter,facebook,google,yahoo,linkedined,msn
编辑器加载中... 1. 分享到twitter的代码” title=”分享到 Twitter” target=”_blank” rel=”nofollow”>Twitter 2. 分享到Face ...
- web网页动态分享facebook和twitter
介绍 facebook分享 http://www.facebook.com/sharer.php?t=${text}u=encodeURIComponent('静态html') twitter分享 h ...
- 移动端H5微信分享
移动端H5微信分享功能,可以使项目更好地传播. 微信官方教程文档: 微信JS-SDK说明文档 步骤一:绑定域名 先登录微信公众平台进入"公众号设置"的"功能设置&quo ...
- ios学习:swift中实现分享到微博、facebook,twitter等
在swift中打开分享功能原来是如此的简单. 1.首先须要 import Social 2.在分享button事件以下 var controller:SLComposeViewController = ...
- 内网穿透神器(ngrok)服务端部署【分享一台自己的ngrok服务器】【多平台】
Ngrok为何物 “ngrok 是一个反向代理,通过在公共的端点和本地运行的 Web 服务器之间建立一个安全的通道.ngrok 可捕获和分析所有通道上的流量,便于后期分析和重放.”这是百度百科上给Ng ...
- 移动端js插件分享
分享几个移动端使用的插件,个人感觉挺不错的. 1. TouchSlide1.1 滑动的焦点图 http://pan.baidu.com/s/1i3J6bbB 2. iscroll.js 模拟滚动条 ...
随机推荐
- C++中的基类与派生类
派生类的继承方式总结: 继承方式 说明 public 基类的public和protected的成员被派生类继承后,保持原来的状态 private 基类的public和protected的成员被派生类继 ...
- [转]简析 IOS 程序图标的设计
表现形态**** 在有限的空间里表达出相对应的信息,在IOS 程序图标设计中,直观是第一个解决的问题,不应该出现大多繁琐的修饰,当然还要有很好的视觉表现力,使用户可以更容易理解此应用的实际作用,更轻松 ...
- O2O在线教育平台策划方案
一.情景需求痛点: 学生: 1.除了上课上课,就是作业作业,学习太枯燥不好玩怎么办?——我就是想要玩玩玩! 2.第二天要交作业,老师不在,在家作业不懂怎么办?——我想要随身老师! 3.噢耶,周末不用上 ...
- Ruby on Rails vs. PHP vs. Python
开发者在开发web应用时,往往会对平台的选择感到困惑,而web专家通常会建议:要考虑几个因素,这些因素包括周转时间.质量.跨浏览器兼容性.与其他框架的整合.数据安全性.易于访问性等. 在考虑了这些因素 ...
- Maven依赖
可传递的依赖: 1.具体调用哪个版本?最短依赖长度的那个 如:A -> B -> C -> D 2.0 , A -> E -> D 1.0,那么调用D 1.0 为了避免这 ...
- Linux下如何进行FTP设置
一.Redhat/CentOS安装vsftp软件 1.更新yum源 首先需要更新系统的yum源,便捷工具下载地址:http://help.aliyun.com/manual?spm=0.0.0.0.z ...
- 使用Eclipse的几个必须掌握的快捷方式(能力工场小马哥收集)
“工若善其事,必先利其器”,感谢Eclipse,她 使我们阅读一个大工程的代码更加容易,在阅读的过程中,我发现掌握几个Eclipse的快捷键会使阅读体验更加流畅,写出来与诸君分享,欢迎补充. 1. C ...
- Ubuntu 下无法Tab键自动补全功能解决办法
在Ubuntu下 使用Tab键报错:cannot create temp file for here-document: no space left on device 解决: rm -rf /var ...
- linux进程控制命令
& 加在一个命令的最后,可以把这个命令放到后台执行 ,如gftp &. ctrl + z 可以将一个正在前台执行的命令放到后台,并且处于暂停状态,不可执行. jobs 查看当前有多少在 ...
- UDP广域网,局域网通信-原理分析,穿透技术
一.UDP局域网通信. 这个比较简单,关于局域网中的2台或者更多的计算机之间的UDP通信,网络上一大把,直接复制粘贴就可以使用,原理也非常简单.所以,本文不做详细介绍. 二.UDP广域通信(包括路由器 ...