安卓的问题,真机测试正常,云打包后有问题。
HBuilder 9.1.0.201806222137-alpha这个版本下云打包,摄像头扫描二维码闪退,选择图片识别二维码无反应,两种方式均无返回错误信息。
HBuilder 9.0.8.201806081953这个版本下云打包,摄像头扫描二维码闪退,无错误信息,选择图片识别二维码正常。
以上为亲测的情况,是wap2app.
测试的代码是直接用官方H5+演示的案例,此扫描二维码页面放在本地,在wap2app的导航栏中点击图标跳转至扫描二维码页面。
放一个百度网址的二维码,方便测试。
<!DOCTYPE html>  
<html>  
    <head>  
        <meta charset="utf-8"/>  
        <meta name="viewport" content="initial-scale=1.0, maximum-scale=1.0, user-scalable=no"/>  
        <meta name="HandheldFriendly" content="true"/>  
        <meta name="MobileOptimized" content="320"/>  
        <title>Hello H5+</title>  
        <script type="text/javascript" src="../js/common.js"></script>  
        <script type="text/javascript">  
var ws=null,wo=null;  
var scan=null,domready=false;  
// H5 plus事件处理  
function plusReady(){  
    if(ws||!window.plus||!domready){  
        return;  
    }  
    // 获取窗口对象  
    ws=plus.webview.currentWebview();  
    wo=ws.opener();  
    // 开始扫描  
    ws.addEventListener('show', function(){  
        scan=new plus.barcode.Barcode('bcid');  
        scan.onmarked=onmarked;  
        scan.start({conserve:true,filename:'_doc/barcode/'});  
    }, false);  
    // 显示页面并关闭等待框  
    ws.show('pop-in');  
    wo.evalJS('closeWaiting()');  
}  
if(window.plus){  
    plusReady();  
}else{  
    document.addEventListener('plusready', plusReady, false);  
}  
// 监听DOMContentLoaded事件  
document.addEventListener('DOMContentLoaded', function(){  
    domready=true;  
    plusReady();  
}, false);  
// 二维码扫描成功  
function onmarked(type, result, file){  
    switch(type){  
        case plus.barcode.QR:  
        type = 'QR';  
        break;  
        case plus.barcode.EAN13:  
        type = 'EAN13';  
        break;  
        case plus.barcode.EAN8:  
        type = 'EAN8';  
        break;  
        default:  
        type = '其它'+type;  
        break;  
    }  
    result = result.replace(/\r\n/g, '');  
    wo.evalJS("scaned('"+ type +"','"+ result +"','"+ file +"');");  
    back();  
}  
// 从相册中选择二维码图片   
function scanPicture(){  
    plus.gallery.pick(function(path){  
        plus.barcode.scan(path,onmarked,function(error){  
            plus.nativeUI.alert('无法识别此图片');  
        });  
    }, function(err){  
        console.log('Failed: '+err.message);  
    });  
}  
        </script>  
        <link rel="stylesheet" href="../css/common.css" type="text/css" charset="utf-8"/>  
        <style type="text/css">  
#bcid {  
    width: 100%;  
    position: absolute;  
    top: 0px;  
    bottom: 44px;  
    text-align: center;  
}  
.tip {  
    color: #FFFFFF;  
    font-weight: bold;  
    text-shadow: 0px -1px #103E5C;  
}  
footer {  
    width: 100%;  
    height: 44px;  
    position: absolute;  
    bottom: 0px;  
    line-height: 44px;  
    text-align: center;  
    color: #FFF;  
}  
.fbt {  
    width: 50%;  
    height: 100%;  
    background-color: #FFCC33;  
    float: left;  
}  
.fbt:active {  
    -webkit-box-shadow: inset 0 3px 5px rgba(0, 0, 0, 0.5);  
    box-shadow: inset 0 3px 5px rgba(0, 0, 0, 0.5);  
}  
        </style>  
    </head>  
    <body style="background-color: #000000;">  
        <div id="bcid">  
            <div style="height:40%"></div>  
            <p class="tip">...载入中...</p>  
        </div>  
        <footer>  
            <div class="fbt" onclick="back()">取  消</div>  
            <div class="fbt" onclick="scanPicture()">从相册选择二维码</div>  
        </footer>  
    </body>  
</html>  
                                
            
            
            
            
4***@qq.com
从相册中选二维码图片识别失败,怎么解决。
2018-07-24 09:33
DCloud_App_Array
请提供下从相册选择识别失败的图片
2018-07-24 18:30
3***@qq.com
回复 4***@qq.com: 请问你解决了吗
2019-09-04 15:09