移动端分享

var shareData = {
        title:"高考里的抗日战争什么样?_新闻百科_腾讯新闻_腾讯网",
        desc: "关于抗战,教科书上划的重点,高考试卷里的真题,你还能记得多少?",
        img: "http://img1.gtimg.com/news/pics/hv1/219/9/1728/112365714.jpg",
        link: window.location.href
    }

//分享
    $(function(){
        var shareB=document.querySelector(".share_btn");//分享按钮,根据页面按钮类名自行修改
        shareB.addEventListener("click",function(){
           shareQQNews();
        });
    });
    

    var UA = function(){
        var userAgent = navigator.userAgent.toLowerCase();
        return {
            ipad: /ipad/.test(userAgent),
            iphone: /iphone/.test(userAgent),
            android: /android/.test(userAgent),
            qqnews: /qqnews/.test(userAgent),
            weixin: /micromessenger/.test(userAgent),
            qqnews_version: userAgent.match(/qqnews/i) == "qqnews" ? userAgent.split('qqnews/')[1] : ''
        };
    };
    function compareVersions(v1, comparator, v2) {
        comparator = comparator == '=' ? '==' : comparator;
        var v1parts = v1.split('.'), v2parts = v2.split('.');
        var maxLen = Math.max(v1parts.length, v2parts.length);
        var part1, part2;
        var cmp = 0;
        for(var i = 0; i < maxLen && !cmp; i++) {
            part1 = parseInt(v1parts[i], 10) || 0;
            part2 = parseInt(v2parts[i], 10) || 0;
            if(part1 < part2)
                cmp = 1;
            if(part1 > part2)
                cmp = -1;
        }
        return eval('0' + comparator + cmp);
    }
    function compareVersions(v1, comparator, v2) {
        comparator = comparator == '=' ? '==' : comparator;
        var v1parts = v1.split('.'), v2parts = v2.split('.');
        var maxLen = Math.max(v1parts.length, v2parts.length);
        var part1, part2;
        var cmp = 0;
        for(var i = 0; i < maxLen && !cmp; i++) {
            part1 = parseInt(v1parts[i], 10) || 0;
            part2 = parseInt(v2parts[i], 10) || 0;
            if(part1 < part2)
                cmp = 1;
            if(part1 > part2)
                cmp = -1;
        }
        return eval('0' + comparator + cmp);
    }
    function shareQQNews() {
        var ua = UA();
        switch(true){
          case ua.qqnews:
            if(window.TencentNews && window.TencentNews.setShareArticleInfo){
                window.TencentNews.setShareArticleInfo(shareData.title, shareData.desc, shareData.desc, shareData.link, shareData.img);
            }
            if(window.TencentNews && window.TencentNews.showShareMenu) {
                window.TencentNews.showShareMenu(shareData.link, shareData.title, shareData.desc, shareData.img,"news_news_wc");
            }else{
                window.TencentNews.shareFromWebView(shareData.title, shareData.desc, shareData.img);
            }
            break;
          case ua.weixin:
            var weixinLayout=document.querySelector(".weixin_layout");
            weixinLayout.style.display="block";
            weixinLayout.addEventListener("click",function(){
              weixinLayout.style.display="none";
            });
            break;
          default:
            window.location = "http://share.v.t.qq.com/index.php?c=share&a=index&appkey=801378464&url="
            + shareData.link + "&title="
            + shareData.desc +"&pic="
            + shareData.img + "&des="
            + shareData.title;
            break;
        };
    }

    function onBridgeReady() {
        //转发朋友圈
        WeixinJSBridge.on("menu:share:timeline", function(e) {
            var data = {
                img_width: "120",
                img_height: "120",
                img_url: shareData.img,
                link: shareData.link,   //desc这个属性要加上,虽然不会显示,但是不加暂时会导致无法转发至朋友圈,
                   desc: shareData.title,
                title: shareData.title
            };
            WeixinJSBridge.invoke("shareTimeline", data, function(res) {
                WeixinJSBridge.log(res.err_msg)
            });
        });
        //同步到微博
        WeixinJSBridge.on("menu:share:weibo", function() {
            WeixinJSBridge.invoke("shareWeibo", {
                "content": shareData.desc,
                "url": shareData.link
            }, function(res) {
                WeixinJSBridge.log(res.err_msg);
            });
        });
        //分享给朋友
        WeixinJSBridge.on('menu:share:appmessage', function(argv) {
            WeixinJSBridge.invoke("sendAppMessage", {
                img_width: "120",
                img_height: "120",
                img_url: shareData.img,
                link: shareData.link,
                desc: shareData.desc,
                title: shareData.title
            }, function(res) {
                WeixinJSBridge.log(res.err_msg)
            });
        });
    };
    //执行
    document.addEventListener('WeixinJSBridgeReady', function() {
        onBridgeReady();
    });

    function androidQQNewsShare(){
        var head= document.getElementsByTagName('body')[0];
        var script= document.createElement('script');
        script.type= 'text/javascript';
        script.src= 'http://mat1.gtimg.com/www/js/newsapp/jsapi/news.js?_tsid=1';
        head.appendChild(script);
    }
    androidQQNewsShare();    
上面这段代码是在移动端网页中分享的主要代码,只需要在需要分享的button div 或者a里面的class中添加share_btn但是一般如果不是在腾讯新闻客户端发布的话最后那部分androidQQNewsShare(){}可以不使用因为这随着腾讯新闻客户端的改版而随之改变。

转载于:https://www.cnblogs.com/kangccb/p/4552032.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值