我们平时浏览的许多网站,比如优酷,在视频下方都有一些分享按钮,这些分享功能如何实现的呢?以下是实现豆瓣、腾讯微博、qq空间、人人、开心、新浪微博分享功能相应的jsp代码:
<%!public String shareApi(int target, String url, String title, String img) { switch (target) { case 0: return "http://v.t.sina.com.cn/share/share.php?pic=" + img + "&title=" + title + "&url=" + url + "&rcontent="; case 1: return "http://v.t.qq.com/share/share.php?title=" + title + "&pic=" + img + "&url=" + url; case 2: return "http://sns.qzone.qq.com/cgi-bin/qzshare/cgi_qzshare_onekey?title=" + title + "&pics=" + img + "&url=" + url; case 3: return "http://share.renren.com/share/buttonshare.do?title=" + title + "&link=" + url + "&rcontent="; case 4: return "http://www.kaixin001.com/repaste/share.php?rtitle=" + title + "&rurl=" + url + "&rcontent="; case 5: return "http://www.douban.com/recommend/?title=" + "&url=" + url; default: return "http://v.t.sina.com.cn/share/share.php?pic=" + img + "&title=" + title + "&url=" + url + "&rcontent="; } }%> <% String url = request.getRequestURL().toString(); String url2 = "http://" + request.getServerName() +".com" //+ ":" //+ request.getServerPort() +request.getContextPath()+ request.getServletPath(); %> <a href=<%=shareApi(5, url2, "", "")%> target="_blank"><img src="img/icon_douban.png" /> </a> <a href=<%=shareApi(0, url, "", "")%> target="_blank"><img src="img/icon_sina.png" /> </a> <a href=<%=shareApi(3, url, "", "")%> target="_blank"><img src="img/icon_renren.png" /> </a> <a href=<%=shareApi(1, url, "", "")%> target="_blank"><img src="img/icon_qq.png" /> </a> <a href=<%=shareApi(4, url, "", "")%> target="_blank"><img src="img/icon_kaixin.png" /> </a>
需要注意的是:
1、分享API最关键是分析各个网站分享时的url,以此为基础可以实现分享功能;
2、在实现时发现:豆瓣的分享链接在跳转时会自动检测是否符合正确的http格式,也即必须是“http://XXX.com”格式的链接才可被分享,而且不能加入端口号,这点很烦人,不知有没有其他解决方法呢?