lexiang

一直以来都是用非官方的分享接口,最近腾讯推出了js分享接口,相信很多用户都需要紧急修改。

本人运营的平台也都做了更新,相信按照官方的文档都能弄好分享。只是有些游戏类的要根据相关参数来设置就会麻烦不少。我们有一个游戏,分享的时候会根据玩的分数自定义分享标题,这样官方的文档就不好用了。

我附上我们实现的代码,方便更多从事微信公众平台开发的朋友。

<script>
    wx.config({
        debug: false,
        appId: \'<?php echo $signPackage["appId"];?>\',
        timestamp: <?php echo $signPackage["timestamp"];?>,
        nonceStr: \'<?php echo $signPackage["nonceStr"];?>\',
        signature: \'<?php echo $signPackage["signature"];?>\',
        jsApiList: [
            \'onMenuShareTimeline\',
            \'onMenuShareAppMessage\'
          // 所有要调用的 API 都要加到这个列表中
        ]
    });

        var imgUrl = \'http://wx.socialtok.com/source/modules/xiwan/template/mobile/img/share.jpg\';
        var link =\'http://wx.socialtok.com/{php echo $this->createMobileUrl(\'index\')}&wxref=mp.weixin.qq.com#wechat_redirect\';
        var desc = \'西门子家电疯狂刷碗比赛,根本停不下来!这分数我也是醉了。\';
        var title = \'西门子家电疯狂刷碗比赛\';
         
        function shareFriend() {
            WeixinJSBridge.invoke(\'sendAppMessage\',{
                "title": title, // 分享标题
                "desc": desc,
                "link": link, // 分享链接
                "img_url": imgUrl// 分享图标
            }, function(res) {
                   //_report(\'timeline\', res.err_msg);
                   //alert(res.err_msg);
                   if(res.err_msg==\'send_app_msg:cancel\'){
                        alert(\'已经取销\');
                   }else if(res.err_msg==\'send_app_msg:ok\'){
                        //alert(\'分享成功\'); 
                         $.post(\'http://wx.socialtok.com/\'+"{php echo $this->createMobileUrl(\'updatecount\')}",{},function(result){
                            //alert(\'分享成功\');
                            alert(result);
                        });
                   }
            });
        }
        function shareTimeline() {
            WeixinJSBridge.invoke(\'shareTimeline\',{
                "title": title, // 分享标题
                "desc": desc,
                "link": link, // 分享链接
                "img_url": imgUrl// 分享图标
            }, function(res) {
                   //_report(\'timeline\', res.err_msg);
                   if(res.err_msg==\'share_timeline:cancel\'){
                        alert(\'已经取销\');
                   }else if(res.err_msg==\'share_timeline:ok\'){
                        $.post(\'http://wx.socialtok.com/\'+"{php echo $this->createMobileUrl(\'updatecount\')}",{},function(result){
                            //alert(\'分享成功\');
                            alert(result);
                        }); 
                   }
            });
        }

        // 当微信内置浏览器完成内部初始化后会触发WeixinJSBridgeReady事件。
        document.addEventListener(\'WeixinJSBridgeReady\', function onBridgeReady() {
            // 发送给好友
            WeixinJSBridge.on(\'menu:share:appmessage\', function(argv){
                shareFriend();
            });
            // 分享到朋友圈
            WeixinJSBridge.on(\'menu:share:timeline\', function(argv){
                if ($("#score").val()>0) { title = "我创造了15秒刷洗"+$("#score").val()+"个盘子,朋友们一起来挑战吧,还有大奖等你哦!";};  
                shareTimeline();
            });
        }, false);
</script>

这样分享后,用户的成绩就会成绩来显示了。

附上我们的分享截屏

 

分类:

技术点:

相关文章: