回梦無痕
回梦無痕
  • 发布:2018-07-21 11:57
  • 更新:2019-03-26 10:37
  • 阅读:3303

【报Bug】wap2app云打包后,扫描二维码闪退,选择图片识别二维码无反应

分类:HTML5+

安卓的问题,真机测试正常,云打包后有问题。

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>  

2018-07-21 11:57 负责人:无 分享
已邀请:
DCloud_App_Array

DCloud_App_Array

已确认此问题是因为应用没有配置震动权限(扫码成功时会震动设备)引起的,在manifest.json的权限列表中勾选“<uses-permission android:name="android.permission.VIBRATE"/>”,重现提交云端打包即可。

  • 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

回梦無痕

回梦無痕 (作者) - 暂停服务

自顶

2***@qq.com

2***@qq.com - 做点喜欢的事情

模块权限问题

  • 回梦無痕 (作者)

    并不是。权限都给了


    2018-07-23 10:19

回梦無痕

回梦無痕 (作者) - 暂停服务

。。

DCloud_App_Array

DCloud_App_Array

请提供下应用的appid(manifest.json文件中的id字段值),我们查下后台打包日志确认下问题。

  • 回梦無痕 (作者)

    __W2A__uyi.9yihome.com


    2018-07-23 17:12

p***@sina.com

p***@sina.com

是啊,很奇怪,有时候ios也会,同一个二维码,如果移动二维码位置,有时候又可以扫描到

该问题目前已经被锁定, 无法添加新回复