FNScanner二维码接口openView自定义扫码Demo

FNScanner二维码接口openView自定义扫码Demo,第1张

概述本文出自APICloud官方论坛 FNScanner 模块是一个二维码/条形码扫描器,是 scanner 模块的优化升级版。在 iOS 平台上本模块底层集成了 Zbar 和系统自带的条形码/二维码分析库,由于 IOS 系统平台在 IOS7.0 以上才开放了二维码/条码的相关接口,所以在 IOS6 上运行时模块会调用开源库 Zbar 去读取解析二维码/条码。只有在 IOS7 以上版本才会调用系统自带 本文出自APICloud官方论坛

FNScanner 模块是一个二维码/条形码扫描器,是 scanner 模块的优化升级版。在 iOS 平台上本模块底层集成了 Zbar 和系统自带的条形码/二维码分析库,由于 IOS 系统平台在 IOS7.0 以上才开放了二维码/条码的相关接口,所以在 IOS6 上运行时模块会调用开源库 Zbar 去读取解析二维码/条码。只有在 IOS7 以上版本才会调用系统自带扫码功能。

模块文档地址:
docs.APIcloud.com/ClIEnt-API/…

模块需要注意的地方:

注意:使用本模块前,需在云编译页面勾选添加访问摄像头权限,若要访问相册也需沟通申请访问相册权限 。
不能同时使用的模块:wwprint

本模块封装了两套扫码方案:
方案一
开发者通过调用 openScanner 接口直接打开自带默认 UI 效果的二维码/条形码扫描页面,本界面相当于打开一个 window 窗口,其界面内容不支持自定义。用户可在此界面实现功能如下:
打开关闭闪关灯
从系统相册选取二维码/条码图片进行解密 *** 作
打开摄像头,自动对焦扫码想要解析的二维码/条码
方案二
通过 openVIEw 接口打开一个自定义大小的扫描区域(本区域相当于打开一个 frame)进行扫描。开发者可自行 open 一个 frame 贴在模块上,从而实现自定义扫描界面的功能。然后配合使用 setFrame、closeVIEw、switchlight 等接口实现开关闪光灯、重设扫描界面位置大小、图片解码、字符串编码等相关功能。详情请参考模块接口参数。

方案一我就不介绍,因为直接调取接口就能直接显示一个扫码ui界面,直接使用就可以, 楼主本帖分享的是方案一无法满足ui设计效果前提下,怎么实现ui自定义的效果;

方案二完成页面截图

方案二打开闪光灯效果界面截图

第一步:首先先打开openwin,然后再打开模块 ,然后延迟打开一个frm自定义一个扫码见面。大家上面看到扫码是这种思路的; 废话不多说上部分核心源码

var FNScanner,eheader,headerH;    APIready = function() {        //应用全局FNScanner模块        FNScanner = API.require(‘FNScanner‘);        //定义根据ID获取dom        eheader = $API.byID(‘header‘);        //设置头部沉浸式        $API.fixStatusbar(eheader);        //获取头部高度        headerH = $API.offset(eheader).h;        //监听应用回到前台        API.addEventListener({            name: ‘resume‘        },function(ret,err) {            FNScanner.onResume();        });        //监听应用回到后台        API.addEventListener({            name: ‘pause‘        },err) {            FNScanner.onPause();        });        fnopenFNScanner();    }    function fnopenFNScanner() {        // 打开扫码模块        FNScanner.openVIEw({            //autorotation: true,fixedOn: API.framename,rect: {                x: 0,y: headerH,w: API.frameWIDth,h: API.frameHeight            }        },err) {            if (ret) {                if (ret.eventType == ‘success‘ && ret.content != ‘‘) {                    // 扫码成功执行函数 *** 作传值                    fnopenCouple(ret.content);                    return;                }                if (ret.eventType == ‘cameraError‘) {                    API.toast({                        msg: ‘请开启app访问手机摄像头权限‘,duration: 2000,location: ‘bottom‘                    });                    setTimeout(function() {                        // 关闭扫码器  关闭扫码界面                        back();                    },300);                    return;                }                if (ret.eventType == ‘albumError‘) {                    API.toast({                        msg: ‘请开启app访问手机相册权限‘,location: ‘bottom‘                    });                    setTimeout(function() {                        back();                    },300);                    return;                }                if (ret.eventType == ‘fail‘) {                    API.toast({                        msg: ‘扫码失败,请从新扫码‘,300);                    return;                }            } else {                API.toast({                    msg: ‘扫码错误请稍后再试‘,location: ‘bottom‘                });                setTimeout(function() {                    back();                },300);            }        });        setTimeout(function() {            // 打开扫码动画frm页面            API.openFrame({                name: ‘add_frm‘,url: ‘./add_frm.HTML‘,rect: {                    margintop: headerH,marginleft: 0,marginRight: 0,marginBottom: 0                },bgcolor: ‘rgba(0,0)‘,});        },300);    }    //返回    function back() {        // 关闭win页面        API.closeWin();        // 关闭扫码模块        FNScanner.closeVIEw();    }    //打开最后扫码得出的数值    function fnopenCouple(content) {        console.warn(content);        back(); //建议打开下一页我这块只是为了方便直接调用返回按钮   扫码成功之后必须关闭扫码模块  不然会出现多次扫码情况    }    var isSOff = true;    // 打开闪光灯    function fnopenLamp() {        if (isSOff) {            FNScanner.switchlight({                status: ‘on‘            });            isSOff = false;        } else {            FNScanner.switchlight({                status: ‘off‘            });            isSOff = true;        }    }复制代码
总结

以上是内存溢出为你收集整理的FNScanner二维码接口openView自定义扫码Demo全部内容,希望文章能够帮你解决FNScanner二维码接口openView自定义扫码Demo所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/web/1015738.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-05-22
下一篇 2022-05-22

发表评论

登录后才能评论

评论列表(0条)

保存