FNScanner QR코드 인터페이스 openView 사용자 정의 스캔 데모

5336 단어 iosandroid
본고는 APICloud 공식 포럼 FNScanner 모듈에서 나온 QR코드/바코드 스캐너로 scanner 모듈의 최적화 업그레이드 버전이다.iOS 플랫폼에서 본 모듈은 Zbar와 시스템이 자체로 가지고 있는 바코드/QR코드 분석 라이브러리를 통합시켰다. IOS 시스템 플랫폼이 IOS 7.0 이상은 QR코드/바코드 관련 인터페이스를 개방했기 때문에 IOS6에서 실행할 때 모듈은 소스 라이브러리 Zbar를 호출하여 QR코드/바코드를 해석합니다.IOS7 이상 버전에서만 시스템 자체 코드 검사 기능이 호출됩니다.
모듈 문서 주소:https://link.juejin.im/?targe...
모듈에서 주의해야 할 점:
주의: 본 모듈을 사용하기 전에 클라우드 컴파일 페이지에서 카메라 접근 권한을 추가하고 앨범에 접근하려면 의사소통을 통해 앨범 접근 권한을 신청해야 합니다.동시에 사용할 수 없는 모듈:wwprint
이 모듈은 두 가지 스캔 시나리오로 구성되어 있습니다.
프로젝트 1 개발자는 OpenScanner 인터페이스를 호출하여 기본 UI 효과가 있는 QR코드/바코드 스캔 페이지를 직접 엽니다. 이 인터페이스는 윈도우 창을 여는 것과 같으며, 인터페이스 내용은 사용자 정의를 지원하지 않습니다.사용자는 이 인터페이스에서 다음과 같은 기능을 실현할 수 있다. 불을 켜고 끄고 시스템 앨범에서 QR코드/바코드 이미지를 선택하여 복호화 조작을 하고 카메라를 켜고 초점 코드가 해석하고자 하는 QR코드/바코드를 자동으로 검사한다.
프로젝트 2는 OpenView 인터페이스를 통해 사용자 정의 크기의 스캐닝 영역을 열고 스캐닝을 진행합니다.개발자는 자체적으로 프레임을 모듈에 붙여 사용자 정의 스캐닝 인터페이스 기능을 실현할 수 있다.그리고 setFrame,closeView,switchLight 등 인터페이스에 맞추어 스위치 플래시, 스캐닝 인터페이스 위치 크기, 이미지 디코딩, 문자열 인코딩 등 관련 기능을 재설정한다.자세한 내용은 모듈 인터페이스 매개 변수를 참조하십시오.방안은 제가 소개하지 않겠습니다. 인터페이스를 직접 호출하면 스캔 ui인터페이스를 직접 표시할 수 있기 때문에 직접 사용하면 됩니다. 건물 주인의 본 게시물이 공유하는 것은 방안이 ui 디자인 효과를 만족시키지 못하는 전제에서 ui 사용자 정의 효과를 어떻게 실현하는지입니다.
시나리오 2 페이지 캡처 완료
방안2 플래시 효과 인터페이스 캡처
첫 번째 단계: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'
        }, function(ret, err) {
            FNScanner.onPause();
        });
       
        fnOpenFNScanner();
    }

    function fnOpenFNScanner() {
        //       
        FNScanner.openView({
            //autorotation: true,
            fixedOn: api.frameName,
            rect: {
                x: 0,
                y: headerH,
                w: api.frameWidth,
                h: api.frameHeight
            }
        }, function(ret, 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        ',
                        duration: 2000,
                        location: 'bottom'
                    });
                    setTimeout(function() {
                        back();
                    }, 300);
                    return;
                }
                if (ret.eventType == 'fail') {
                    api.toast({
                        msg: '    ,     ',
                        duration: 2000,
                        location: 'bottom'
                    });
                    setTimeout(function() {
                        back();
                    }, 300);
                    return;
                }
            } else {
                api.toast({
                    msg: '         ',
                    duration: 2000,
                    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,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;
        }
    }

좋은 웹페이지 즐겨찾기