白鹭引擎的微信分享接口

在游戏开发中微信分享功能是必不可少的 。在白鹭引擎中微信的分享接口跟cocos-js有一点出入。代码如下

//获取签名分享
  var url = "http://www.gamedo.net:8889/get_sign?game_url=" + encodeURIComponent(location.href).replace(/!/g, '%21').replace(/'/g, '%27').replace(/\(/g, '%28').replace(/\)/g, '%29').replace(/\*/g, '%2A').replace(/%20/g, '+');
    var urlloader = new egret.URLLoader();
        var req = new egret.URLRequest(url);
        urlloader.load(req);
        req.method = egret.URLRequestMethod.GET;
        urlloader.addEventListener(egret.Event.COMPLETE, (e)=> {
            var signPackage = <SignPackage>JSON.parse(e.target.data);
            var bodyConfig = new BodyConfig();
            bodyConfig.debug = true;
            bodyConfig.appId = 'wx8923c424f092e0af';
            bodyConfig.timestamp = signPackage.timestamp;
            bodyConfig.nonceStr = signPackage.nonceStr;
            bodyConfig.signature = signPackage.signature;
            bodyConfig.jsApiList =  [
                'checkJsApi',
                'onMenuShareTimeline',
                'onMenuShareAppMessage',
                'onMenuShareQQ',
                'onMenuShareWeibo'
            ]
            wx.config(bodyConfig);
            wx.ready(function(){
                shareConfig(title, desctr, link, imgUrl);
            })
        }, this);

其中url是需要访问的服务器地址,是在类中写的一个接口,里面定义了一下属性。如下

interface SignPackage {
    appId:string;
    nonceStr:string;
    timestamp:number;
    signature:string;
    url:string;
}

给获得的数据使用JSON.parse()转成接口的数据类型。
通过白鹭引擎里面分装的new BodyConfig();,来设置签名和接口,给网络加载添加网络侦听,在侦听方法里面设置
公众号的唯一标识: appId

时间戳: timestamp

随机码: nonceStr

签名: signature
bodyConfig.jsApiList = [// 必填,需要使用的JS接口列表
// 所有要调用的 API 都要加到这个列表中
‘checkJsApi’,//判断当前客户端是否支持指定JS接口
‘chooseImage’//拍照或从手机相册中选图接口
];
例如在本例中需要使用分享到朋友圈,分享到QQ ,分享到微博等API所有在定义的时候这些API都存在于jsApiList 里面。
设置完基本信息之后然后通过wx.config()来注入权限验证配置。
然后通过ready接口处理成功验证。在ready接口里面调用全局的方法 ,来设置具体的接口的使用方法。具体的使用方法如下:

function shareConfig(title, desc, link, imgUrl) {
    var shareAppMessage  = new BodyMenuShareAppMessage();
    shareAppMessage.title = title;
    shareAppMessage.desc = desc;
    shareAppMessage.link = link;
    shareAppMessage.imgUrl = imgUrl;
    shareAppMessage.success = function(res){
        SceneControl.createLoaingShare();
    }
     shareAppMessage.fail = function(res){
        alert("fenxiangshibai")
    }
    wx.onMenuShareAppMessage(shareAppMessage);
    /**
     * 分享到QQ
     */
    var shareqq = new BodyMenuShareQQ();
    shareqq.title = title;
    shareqq.desc = desc;
    shareqq.link = link;
    shareqq.imgUrl = imgUrl;
    shareqq.success = function(res){
        SceneControl.createLoaingShare();
    }
      shareqq.fail = function(res){
        alert("fenxiangshibai")
    }
    wx.onMenuShareQQ(shareqq);
    /**
     * 分享到朋友圈
     */
    var sharet = new BodyMenuShareTimeline();
    sharet.title = title+desc;
    sharet.link = link;
    sharet.imgUrl = imgUrl;
    sharet.success = function(res){
        SceneControl.createLoaingShare();
    }
    sharet.fail = function(res){
       alert("fenxiangshibai")
    }
    wx.onMenuShareTimeline(sharet)
    /**
     * 分享到微博
     */
    var shareweibo = new BodyMenuShareWeibo();
    shareweibo.title = title+desc;
    shareweibo.link = link;
    shareweibo.imgUrl = imgUrl;
    shareweibo.success = function(res){
        SceneControl.createLoaingShare();
    }
     shareweibo.fail = function(res){
        alert("fenxiangshibai")
    }
    wx.onMenuShareWeibo(shareweibo)
}

这个脚本必需是在游戏已加载的时候就注册分享接口。。。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值