YanRong
YanRong
  • 发布:2015-04-18 22:36
  • 更新:2015-04-19 07:11
  • 阅读:3747

二维码扫描无法启动

分类:HTML5+

Hello 5+ 的代码没有问题,但是自己写的就有问题。

代码如下:

var ws=plus.webview.currentWebview();  
var wo=ws.opener();  
var barCode = null;  

                             setTimeout(function(){  
                    barCode = new plus.barcode.Barcode('bcid');  
                    console.log("start scan1");  
                    barCode.onmarked=onmark;  
                    barCode.onerror = onerror;  
                    barCode.start();  
                },300);

通过 log 可以判断出来,“barCode = new plus.barcode.Barcode('bcid');” 这段代码发生了错误,
错误信息为:

Uncaught TypeError: Cannot call method 'addEventListener' of null

代码是从Hello5+的例子拷贝过来的。

因为API文档上没有特别的说明,所以想知道哪里出了问题。

难道是要引用 Hello5+里的 common.js ?

2015-04-18 22:36 负责人:无 分享
已邀请:
YanRong

YanRong (作者)

找到原因了。页面中必须有一个 id=bcid 的 div 才可以。

但是 HTML5+ 的API并没有这样的说明,是不是应该补充上去?

  • Dino_Xie

    我本来就是这么写的,也会闪退,只要一调用barCode.start()就闪退

    2017-07-26 17:51

DCloud_heavensoft

DCloud_heavensoft

barCode = new plus.barcode.Barcode('bcid');

bcid是参数。名字自己起。

YanRong

YanRong (作者)

> bcid是参数。名字自己起。

谢谢!昨晚这个搞清楚了。不过这个问题比较在意:

> 但是 HTML5+ 的API并没有这样的说明,是不是应该补充上去?

因为HTML5+ 毕竟是一个规范,按照道理来说,任何人都可以基于这个规范来做自己的实现。
但是现在很明显API说明中没有这个 div 的说明。

另外,“http://ask.dcloud.net.cn/question/917” 这个帖子里,似乎 cancel 方法的实现也没有完全完成?

  • junzhang

    为什么我用你的代码打不开啊

    2015-07-08 16:59

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