我正在开发一个angularJS Web应用程序,需要从移动设备扫描程序包,并且为此使用bridgeit

我用angular编写了以下代码来执行该功能,但似乎不起作用。

HTML代码:

<input id="inp" />
<button id="scan" ng-click="scan()"> Scan </button>

JS代码:
// inside angular controller
$scope.scan = funcction() {
    bridgeit.scan('scan', 'window.scan');
}

// in global scope
window.scan = function(event) {
    alert(event.data);
}

结果:bridgeit能够扫描二维码/条形码,但不会返回该值。

最佳答案

尝试给全局范围内的函数命名,并将其传递给bridgeit。

现在,您只是将其分配给窗口中名为scan的属性

另外,请确保您没有将该函数包含在任何其他函数内部或以某种方式隐藏在全局范围之外。

Brigeit评估网页上的字符串以调用您的函数。

// inside angular controller
$scope.scan = funcction() {
    bridgeit.scan('scan', 'globalScan');
}

// in global scope
window.scan = function globalScan(event) {
    alert(event.data);
}

更新:

可能会有帮助的另一件事是,在添加bridgeit脚本之前尝试创建全局函数。

不过,关键点是bridgeit处理您在eval函数中提供的字符串,并在全局范围内查找它。

关于javascript - 集成AngularJS和Bridgeit.js(移动Web应用程序),我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/30322798/

10-11 06:28