js实现qq空间、微博以及豆瓣等平台分享

网页版分享

一直很好奇如何实现分享到qq空间和微博的功能,今晚正好没什么事,所以便去了解如何实现。可惜最后没找到如何通过js打开手机本地app并分享的实现代码(好像js办不到这一点,希望有了解的人能够指点一下),只能够打开相应地网页版进行分享。
具体代码如下:

<script type="text/javascript">
(function() {
    var p = {
        url: "http://lesty612.github.io/",
        showcount: ‘1‘,
        /*是否显示分享总数,显示:‘1‘,不显示:‘0‘ */
        desc: ‘我是分享理由‘,
        /*默认分享理由(可选)*/
        summary: ‘我是summary‘,
        /*分享摘要(可选)*/
        title: ‘我是title‘,
        /*分享标题(可选)*/
        site: ‘lesty612‘,
        /*分享来源 如:腾讯网(可选)*/
        pics: ‘http://lesty612.github.io/images/default_avatar.jpg‘,
        /*分享图片的路径(可选)*/
        style: ‘202‘,
        width: 105,
        height: 31
    };
    var s = [];
    for (var i in p) {
        s.push(i + ‘=‘ + encodeURIComponent(p[i] || ‘‘));
    }
    document.write([‘<a version="1.0" class="qzOpenerDiv" href="http://sns.qzone.qq.com/cgi-bin/qzshare/cgi_qzshare_onekey?‘, s.join(‘&‘), ‘" target="_blank">分享</a>‘].join(‘‘));
})();
</script>
<script src="http://qzonestyle.gtimg.cn/qzone/app/qzlike/qzopensl.js#jsdate=20111201" charset="utf-8"></script>

这个是包含图标(以及分享数量)的实现代码,需要导入相应地js文件。具体可以在QQ互联 > Qzone分享组件里查看详细代码和具体细节
当然一般都用更简单的方法,可以直接用<a></a>标签打开(或者其他打开链接的方式)以下链接:

‘http://sns.qzone.qq.com/cgi-bin/qzshare/cgi_qzshare_onekey?url=‘ + url + ‘&title=‘ + title + ‘&pics=‘ + pics
/* 其他具体参数可参照上面代码,按照实际情况增删 */

分享到qq好友

<script type="text/javascript">
(function() {
    var p = {
        /*获取URL,可加上来自分享到QQ标识,方便统计*/
        /*分享理由(风格应模拟用户对话),支持多分享语随机展现(使用|分隔)*/url: "http://lesty612.github.io/",
        desc: ‘自从看了Lesty的博客,感觉天黑都不怕了‘,
        /*分享标题(可选)*/
        title: ‘我是title‘,
        /*分享摘要(可选)*/
        summary: ‘我是内容摘要‘,
        /*分享图片(可选)*/
        pics: ‘http://lesty612.github.io/images/default_avatar.jpg‘,
        /*视频地址(可选)*/
        flash: ‘‘,
        /*分享来源(可选) 如:QQ分享*/
        site: ‘lesty612‘,
        style: ‘201‘,
        width: 32,
        height: 32
    };
    var s = [];
    for (var i in p) {
        s.push(i + ‘=‘ + encodeURIComponent(p[i] || ‘‘));
    }
    document.write([‘<a class="qcShareQQDiv" href="http://connect.qq.com/widget/shareqq/index.html?‘, s.join(‘&‘), ‘" target="_blank">分享到QQ</a>‘].join(‘‘));
})();
</script>
<script src="http://connect.qq.com/widget/loader/loader.js" widget="shareqq" charset=""utf-8"></script>

具体可以在QQ互联 > QQ分享组件里查看详细代码和具体细节
简易方法同上《qq空间分享》

推荐到豆瓣

‘http://www.douban.com/recommend/?url=‘ + url + ‘&title=‘ + title

转发到新浪微博

‘http://v.t.sina.com.cn/share/share.php?url=‘ + url + ‘&title=‘ + title

使用部分浏览器自带的分享功能

既然不能找到有效的方法实现调用本地app进行分享,我们只能退而求其次,使用浏览器自带的分享功能实现分享(so dirty),而目前只找到调用手机版UC和QQ浏览器的代码实现。
推荐使用JefferyWang写的分享工具,简单方便,查看工具请戳这里~~
具体实现原理就是使用浏览器自带的内置对象(不同浏览器不一样)和提供的相应api来启动分享功能。这里需要注意的是,要根据不同系统(IOS/Android)和不同版本来做适配,核心代码如下:

UC浏览器下

if (typeof(ucweb) != "undefined") {
    ucweb.startRequest("shell.page_share", [title, title, url, to_app, "", "@" + from, ""])
} else {
    if (typeof(ucbrowser) != "undefined") {
        ucbrowser.web_share(title, title, url, to_app, "", "@" + from, ‘‘)
    } else {
    }
}

QQ浏览器下

if (isqqBrowser && !isWeixin) {
    to_app = to_app == ‘‘ ? ‘‘ : this.ucAppList[to_app][2];
    var ah = {
        url: url,
        title: title,
        description: desc,
        img_url: img,
        img_title: img_title,
        to_app: to_app,//微信好友1,腾讯微博2,QQ空间3,QQ好友4,生成二维码7,微信朋友圈8,啾啾分享9,复制网址10,分享到微博11,创意分享13
        cus_txt: "请输入此时此刻想要分享的内容"
    };
    ah = to_app == ‘‘ ? ‘‘ : ah;
    if (typeof(browser) != "undefined") {
        if (typeof(browser.app) != "undefined" && isqqBrowser == bLevel.qq.higher) {
            browser.app.share(ah)
        }
    } else {
        if (typeof(window.qb) != "undefined" && isqqBrowser == bLevel.qq.lower) {
            window.qb.share(ah)
        } else {
        }
    }
} else {
}

以上代码截取自JefferyWang工具源码的nativeShare.js文件中,感兴趣的同学可以去了解下,至于其他浏览器就只能通过文字+图标指向相应的浏览器自带分享按钮位置(原谅我这么low的方法),从而实现app端到app端的分享。

时间: 2024-10-13 02:42:56

js实现qq空间、微博以及豆瓣等平台分享的相关文章

raspberry pi 自动发布天气信息到QQ空间/微博

raspberry pi 自动发布天气信息到QQ空间/微博 参考链接: https://aoaoao.me/951.html/comment-page-1 http://www.ipip5.com/today/api.php?type=json 说明: 天气信息来自于百度地图API,历史上的今天来自于网络API(见上). 准备工作: 安装python(没有的,自行下载安装) 安装requests: git clone git://github.com/kennethreitz/requests.

不用写软件,纯JS 实现QQ空间自动点赞

这里分享一个自己写的点赞JS,已实现了右边图片点赞,有兴趣的朋友可以加上去玩玩.打开浏览器的开发者模式运行就可以看到效果了 function ilike() { var b = document.getElementById("fhp_like"); var c = b.childNodes[1]; console.log(c.childNodes.length); for (var i = 0; i < c.childNodes.length; i++) { var a1 =

js文章QQ空间分享

<!--示例一--> <div id="ckepop" class='feixiangjias'> <a href="javascript:" class="jiathis jiathis_txt jtico jtico_jiathis" target="_blank">分享到:</a> <a class="jiathis_button_qzone"&g

QQ空间说说刷赞软件免费分享

柔情QQ空间说说刷赞软件是一款纯净.免费.的QQ空间营销软件.柔情QQ空间说说主要进行 免费刷赞 在线刷赞 超高速刷赞.空间动态秒赞,秒评论等. 柔情QQ空间说说刷赞使用方法: 输入您的QQ号码,点击获取列表进行刷赞和刷新空间动态,秒评论等功能. 下载地址: http://qqkj.ys168.com/

asp.net mvc 如何调用微信jssdk接口:分享到微信朋友(圈)| 分享到qq空间

如何在asp.net mvc 项目里, 调用微信jssdk接口,现实功能: 分享到微信朋友(圈)| 分享到qq空间 1 创建一个Action,准备一些数据,初始化数据(签名): /// <summary> /// 分享的内容 /// 必须写在html的head里面才可以生效 /// </summary> /// <param name="fxUrl"></param> /// <returns></returns>

andriod 实现新浪、QQ空间、微信朋友圈、微信好友分享功能

前言:自己在学习的过程中的一些操作过程,对分享的一些理解.下面就讲解一下: 下载地址:http://download.csdn.net/detail/u014608640/7490357 首先,我们需要去ShareSdk官方网站http://sharesdk.cn/ 去下载ShareSDK ,然后我们会有4个文件: 根据我自己在学习的过程中只用到了第一个文件夹的 libs目录的2个项目,这2个是必须要的,是ShareSdk提供的,然后需要将这2个放入到自己做的项目当中去,在Res目录下有一个 S

新浪微博、腾讯微博、QQ空间、人人网、豆瓣 一键分享API

新浪微博: http://service.weibo.com/share/share.php?url= count=表示是否显示当前页面被分享数量(1显示)(可选,允许为空) & url=将页面地址转成短域名,并显示在内容文字后面.(可选,允许为空) & appkey=用于发布微博的来源显示,为空则分享的内容来源会显示来自互联网.(可选,允许为空) & title=分享时所示的文字内容,为空则自动抓取分享页面的title值(可选,允许为空) & pic=自定义图片地址,作为

将微博或者qq空间的说说同步至博客园 wcf+js(ajax)跨域请求(1)

前天刚写了篇文章使用Bootstrap为你的博客园自定义轮播图片(今天将图片加载的顺序调整了下,不在访问的时候直接加载,而是页面加载最后在脚本里面动态添加dom元素),虽说技术含量不怎么高,但是大家还算感兴趣.其实对博主来说最关键是博客的积分在涨.所以趁热打铁,再来一篇使用wcf+js ajax跨域请求数据同步空间说说的帖子. 因为是请求qq说说的数据,所以要登陆我的qq,这个很麻烦,总不能让每个访客都登陆的qq,然后把数据取出来吧,而且qq也没有相关的接口提供,登陆的时候还要处理验证码.所以这

js 判断移动设备、pc端、android、iPhone、是否为微信、微博、qq空间

var browser = { versions: function () { var u = navigator.userAgent, app = navigator.appVersion; return { //移动终端浏览器版本信息 trident: u.indexOf('Trident') > -1, //IE内核 presto: u.indexOf('Presto') > -1, //opera内核 webKit: u.indexOf('AppleWebKit') > -1,