我们平时浏览的许多网站,比如优酷,在视频下方都有一些分享按钮,这些分享功能如何实现的呢?以下是实现豆瓣、腾讯微博、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”格式的链接才可被分享,而且不能加入端口号,这点很烦人,不知有没有其他解决方法呢?