美文网首页
Creator接微信分享前端代码

Creator接微信分享前端代码

作者: 浪荡少年 | 来源:发表于2019-12-20 21:50 被阅读0次

以下是ts脚本,除了调用java(jsb那一段)需要改成自己的,其他的就算是报错也不用改,亲自试用过

/**

     * 截屏分享

     */

    public static shareWithFriendImg(content) {

        if (CC_JSB) {

            //需要自己自行再创建一个 Camera depth要高于MainCamera 不然会黑屏 

            let camera=cc.find('Canvas/Camera').getComponent(cc.Camera);

            let texture = new cc.RenderTexture();

            texture.initWithSize(1280,720,cc.gfx.RB_FMT_D24S8);

            //cc.TEXTURE2_D_PIXEL_FORMAT_RGB_A8888,0x88F0

            camera.targetTexture = texture;

            let width =  texture.width;

            let height =  texture.height;

            let canvas = document.createElement('canvas');

            let ctx = canvas.getContext('2d');

            canvas.width = width;

            canvas.height = height;

            camera.render();

            let data =  texture.readPixels();

            //以下代码将截图后默认倒置的图片回正

            let picData = new Uint8Array(width * height * 4);

            let rowBytes = width * 4;

            for (let row = 0; row < height; row++) {

                let srow = height - 1 - row;

                let start = Math.floor(srow * width * 4);

                let reStart = row * width * 4;

                // save the piexls data

                for (let i = 0; i < rowBytes; i++) {

                    picData[reStart + i] = data[start + i];

                }

            }

            let fileName = "/result_share.jpg";

            let fullPath = jsb.fileUtils.getWritablePath()   + fileName;

            // //保存图片

            jsb.saveImageData(picData, width, height, fullPath);

            if (cc.sys.OS_IOS == cc.sys.os) {

                jsb.reflection.callStaticMethod("IOSWeChatMgr", "shareWithWeixinFriendImg:ImagePath:", content, '');

            } else if (cc.sys.OS_ANDROID == cc.sys.os) {

                jsb.reflection.callStaticMethod("org/cocos2dx/javascript/AppActivity", "ShareImageWX", "(Ljava/lang/String;I)V", jsb.fileUtils.getWritablePath() + '/result_share.jpg', 0);

            } else {

                return;

            }

        }

    }

/**

     * 只分享文字

     */

    public static shareWithFriendContent(content: string) {

        if (CC_JSB) {

            if (cc.sys.OS_IOS == cc.sys.os) {

                jsb.reflection.callStaticMethod("IOSWeChatMgr", "shareWithWeixinFriendImg:ImagePath:", content, jsb.fileUtils.getWritablePath() + 'dx_screenshot.png');

            } else if (cc.sys.OS_ANDROID == cc.sys.os) {

                jsb.reflection.callStaticMethod("org/cocos2dx/javascript/AppActivity", "ShareTextWX", "(Ljava/lang/String;I)V", content, 0);

            } else {

                return;

            }

        }

    }

/**

     * 分享超链接图片

     */

    public static shareWithFriendUrl(title, content, url) {

        if (cc.sys.OS_IOS == cc.sys.os) {

            jsb.reflection.callStaticMethod("IOSWeChatMgr", "shareWithWeixinFriendUrl:Title:Content:ImagePath:", url, title, content, '');

        } else if (cc.sys.OS_ANDROID == cc.sys.os) {

            jsb.reflection.callStaticMethod("org/cocos2dx/javascript/AppActivity", "ShareUrlWX", "(Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;I)V", url, title, content, '', 0);

        } else {

            return;

        }

    }

相关文章

网友评论

      本文标题:Creator接微信分享前端代码

      本文链接:https://www.haomeiwen.com/subject/vwqwnctx.html