美文网首页
ccc android 生成二维码

ccc android 生成二维码

作者: 应届毕业生_18 | 来源:发表于2019-11-30 17:06 被阅读0次

    参考链接:https://www.jianshu.com/p/b275e818de6a

    思路:

        1. 通过 ZXing 库获得二维码的Bitmap

        2. 将Bitmap 保存到本地图片(注意存储路径)

        3. jsb读取路径替换spriteFrame

    Android关键代码:

    public static int saveBitmapToLocal(String url){

        String savePath =app.getFilesDir().getAbsolutePath() +"/QRCodeImg.png";

        Bitmap img =createQRCodeBitmap(url,480,480);

        File filePic;

        try {

            filePic =new File(savePath);

            if (!filePic.exists()) {

                filePic.getParentFile().mkdirs();

                filePic.createNewFile();

            }

            FileOutputStream fos =new FileOutputStream(filePic);

            img.compress(Bitmap.CompressFormat.PNG,100, fos);

            fos.flush();

            fos.close();

        }catch (IOException e) {

            return -1;

        }

    return  0;

    }

    ccc关键代码:

    refreshQrCode:function(){

            let spriteFrame = null;

            let fileName = "QRCodeImg";

            let url = jsb.fileUtils.getWritablePath() + fileName + ".png";

            if (jsb.fileUtils.isFileExist(url)){

                spriteFrame = new cc.SpriteFrame(url);

                this.qrCodeSprite.spriteFrame = spriteFrame;

            }else{

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

                    console.log("android creator: current platform is cc.sys.OS_ANDROID");

                    let url = "https://www.baidu.com";

                    let result = jsb.reflection.callStaticMethod("org/cocos2dx/javascript/AppActivity", "saveBitmapToLocal", "(Ljava/lang/String;)I",url);

                    if (result === 0){

                        console.log("android save qrCoede success");

                        this.refreshQrCode();

                    }else if (result === -1){

                        console.log("android save qrCoede failure");

                    }else{

                        console.log("i can't understand");

                    }

                }

            }

        }

    ps: 

        ①    ZXing简介:ZXing全称zebra crossing,翻译过来就是『斑马线』的意思。ZXing是一个采用Java实现的、开源的、支持多格式(一维/二维)的条形码图像处理库。

        ②    jsb.fileUtils.getWritablePath() 在android平台下获取的路径为/data/user/0/org.cocos2d.scratchCard/files,

        ③    android平台需要使用app.getFilesDir().getAbsolutePath()获取路径;

    相关文章

      网友评论

          本文标题:ccc android 生成二维码

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