哇哦!恍然大悟般的“share”功能的实现!

有一个问题一直困扰着我,也是我一直没有时间去了解和学习的,那就是前端(移动端)实现分享到微信、QQ好友、QQ空间、新浪微博等等平台的功能实现,虽然之前有做过,但是都是上一个领导自己写好的,我直接拿来用的,昨天下班就有给自己预定一个明日计划,一是完成前一天领导安排的页面,二是学习并理解前端分享功能的实现!

上午九点到公司后就去完成了前一天遗留的页面问题,解决完了之后就投入到了“share”问题上来了,一直在网上查询相关资料以及在技术群里问了相关人员,但是还是没有得到我想要的结果,终于在网上搜索得到了很好的答案!

功夫不负有心人,最终得到了我比较满意的答案!

之前就有自己私下写过前端实现分享的demo,是利用的百度分享实现的,而这就出现了一个问题就是百度分享并不支持移动端页面,下面简单来看一个百度分享实现的分享功能的demo:

<!DOCTYPE html>
<html>
    <head>
        <meta charset="UTF-8">
        <meta name="viewport" content="width=device-width, initial-scale=1.0, user-scalable=0, minimum-scale=1.0, maximum-scale=1.0">
        <title>百度分享功能的实现</title>
    </head>
    <body>
        <h3>直接使用百度分享</h3>
        <div class="bdsharebuttonbox">
            <a href="#" class="bds_more" data-cmd="more"></a>
            <a href="#" class="bds_weixin" data-cmd="weixin" title="分享到微信"></a>
            <a href="#" class="bds_tsina" data-cmd="tsina" title="分享到新浪微博"></a>
            <a href="#" class="bds_qzone" data-cmd="qzone" title="分享到QQ空间"></a>
            <a href="#" class="bds_tqq" data-cmd="tqq" title="分享到腾讯微博"></a>
        </div>
        <script>
            window._bd_share_config = {
                "common": {
                    "bdSnsKey": {},
                    "bdText": "",
                    "bdMini": "2",
                    "bdMiniList": false,
                    "bdPic": "",
                    "bdStyle": "0",
                    "bdSize": "32"
                },
                "share": {},
                "image": {
                    "viewList": ["weixin", "tsina", "qzone", "tqq"],
                    "viewText": "分享到:",
                    "viewSize": "16"
                },
                "selectShare": {
                    "bdContainerClass": null,
                    "bdSelectMiniList": ["weixin", "tsina", "qzone", "tqq"]
                }
            };
            with(document) 0[(getElementsByTagName('head')[0] || body).appendChild(createElement('script')).src = 'http://bdimg.share.baidu.com/static/api/js/share.js?v=89860593.js?cdnversion=' + ~(-new Date() / 36e5)];
        </script>
    </body>
</html>

效果如下:

好了,百度分享相关的就说到这了,你可以参考官方网站。

http://share.baidu.com/

直接获取代码或,根据自己的需要修改相应的项即可,它主要用于pc端的比较多,移动端的话需要自己去调整页面的适配问题也就是样式展现问题!


 

那么接下来回到我理想的sharesdk上来,官网链接为:http://sharesdk.mob.com/

点击立即使用,登录/注册、然后接下来的首要任务就是获取项目的APP key以及APP secret。这两很重要!因为页面中要用到。

你只要添加产品,添加项目名称,然后获取APP key以及APP secret。(这里我已经建立了的一个产品名称为wapTest的项目,也可以建立多个根据你自己的需要,不过一般一个就够用,而且公司开发的话用的也是公司的不是自己的。)

到这里基础的准备工作就完了,接下来就是基础案例的展示:

API文档也有介绍!进入到集成文档中心:

http://wiki.mob.com/%E5%BF%AB%E9%80%9F%E9%9B%86%E6%88%90-13/

下边直接来看两个demo代码吧!

Demo1:

<!DOCTYPE html>
<html>
    <head>
        <meta charset="UTF-8">
        <meta name="viewport" content="width=device-width, initial-scale=1.0, user-scalable=0, minimum-scale=1.0, maximum-scale=1.0">
        <title>标题</title>
    </head>
    <body>
        你的网站内容部分!
        <hr />
        <!--MOB SHARE BEGIN-->
        <div class="-mob-share-ui-button -mob-share-open">分享</div>
        <div class="-mob-share-ui" style="display: none">
            <ul class="-mob-share-list">
                <li class="-mob-share-weixin"><p>微信</p></li>
                <li class="-mob-share-weibo"><p>新浪微博</p></li>
                <li class="-mob-share-qzone"><p>QQ空间</p></li>
                <li class="-mob-share-qq"><p>QQ好友</p></li>
                <li class="-mob-share-douban"><p>豆瓣</p></li>
                <li class="-mob-share-facebook"><p>Facebook</p></li>
                <li class="-mob-share-twitter"><p>Twitter</p></li>
            </ul>
            <div class="-mob-share-close">取消</div>
        </div>
        <div class="-mob-share-ui-bg"></div>
        <script id="-mob-share" src="http://f1.webshare.mob.com/code/mob-share.js?appkey=1feac3bd7169c"></script>
        <!--MOB SHARE END-->
    </body>
</html>

效果:

 

点击分享按钮弹出:

Demo2:

<!DOCTYPE html>
<html>
    <head>
        <meta charset="UTF-8">
        <meta name="viewport" content="width=device-width, initial-scale=1.0, user-scalable=0, minimum-scale=1.0, maximum-scale=1.0">
        <title>mob.com2Test</title>
    </head>
    <body>
        <!--MOB SHARE BEGIN-->
        <div class="-mob-share-ui-button -mob-share-open">分享</div>
        <div class="-mob-share-ui" style="display: none">
            <ul class="-mob-share-list">
                <li class="-mob-share-weibo"><p>新浪微博</p></li>
                <li class="-mob-share-qzone"><p>QQ空间</p></li>
                <li class="-mob-share-qq"><p>QQ好友</p></li>
            </ul>
            <div class="-mob-share-close">取消</div>
        </div>
        <div class="-mob-share-ui-bg"></div>
        <script id="-mob-share" src="http://f1.webshare.mob.com/code/mob-share.js?appkey=1feac3bd7169c"></script>
        <script>
            mobShare.config({
                debug: true, // 开启调试,将在浏览器的控制台输出调试信息
                appkey: '1feac3bd7169c', // appkey
                params: {
                    url: 'http://192.168.0.173:8020/share2-xiugai/mob.com2.html', // 分享链接
                    title: '这是mob.com2案例的分享标题', // 分享标题
                    description: '分享描素的话-比如:【赚钱】独创运营模式,全方位指导,专业团队,引领世界共创富,分红全球购打造亿万大众创富梦想的平台,财富等您加入!!!', // 分享内容
                    pic: 'https://gss3.bdstatic.com/7Po3dSag_xI4khGkpoWK1HF6hhy/baike/s%3D220/sign=82bbf1638bcb39dbc5c06054e01709a7/728da9773912b31bef2e58a08c18367adbb4e1fd.jpg', // 分享图片,使用逗号,隔开
                    reason: '自定义评论内容,只应用与QQ,QZone与朋友网-比如:真棒!!!', //自定义评论内容,只应用与QQ,QZone与朋友网
                },

                /**
                 * 分享时触发的回调函数
                 * 分享是否成功,目前第三方平台并没有相关接口,因此无法知道分享结果
                 * 所以此函数只会提供分享时的相关信息
                 * 
                 * @param {String} plat 平台名称
                 * @param {Object} params 实际分享的参数 { url: 链接, title: 标题, description: 内容, pic: 图片连接 }
                 */
                callback: function(plat, params) {
                    //回调函数执行其他的处理(根据需要添加自己自定义的内容)
                    if(plat=='qq'){
                        sharetype=2;
                    }else if(plat=='weixin'){
                        sharetype=5;
                    }else if(plat=='qzone'){
                        sharetype=6;
                    }else if(plat=='weibo'){
                        sharetype=3;
                    }else{
                        sharetype=9;
                    }
                }
            });
        </script>
        <!--MOB SHARE END-->
    </body>
</html>

效果:(和上边类似) 

那么到这里,关于前端分享的基础实现也算完成了,这里只是简单的介绍如何使用以及使用的平台,还有更多需要自己去更改的地方,在以后的学习中再去解决吧!!加油! 像是了却一桩心事般,让人心情瞬间有几分欣喜!

 

原文地址:https://www.cnblogs.com/xiangru0921/p/7281365.html