当前位置 : 主页 > 手机开发 > cordova >

如何从Meteor调用Cordova插件方法?

来源:互联网 收集:自由互联 发布时间:2021-06-10
这里是Meteor的新手.我无法从Meteor调用Cordova插件方法. 这是我关心的插件: http://plugins.cordova.io/#/package/com.phonegap.plugins.barcodescanner 我在命令行中添加了包: meteor add cordova:com.phonegap.pl
这里是Meteor的新手.我无法从Meteor调用Cordova插件方法.

这是我关心的插件:
http://plugins.cordova.io/#/package/com.phonegap.plugins.barcodescanner

我在命令行中添加了包:
meteor add cordova:com.phonegap.plugins.barcodescanner@2.0.1

以下是我的javascript代码.最终发生的事情是在启动时,onCallback方法加载,但不会发生条形码扫描,也不会调用onSuccess和onError.我尝试过类似的方法与其他cordova包,但没有任何作用.我还尝试用cordova.call中的’cordova.plugins.barcodeScanner.scan’替换所有下限,’barcodeScanner.scan’,’com.phonegap.plugins.barcodescanner.scan’等变体,但是徒劳无功.

if (Meteor.isCordova) {
    Meteor.startup(function () {
        cordova = new Cordova();
        cordova.addEventListener('deviceready', function() {
            function onSuccess(result) {
                alert("We got a barcode\n" +
                    "Result: " + result.text + "\n" +
                    "Format: " + result.format + "\n" +
                    "Cancelled: " + result.cancelled);      
            }

            function onError(error) {
                alert("Scanning failed: " + error);     
            }

            function onCallback(msg) {
                alert("Callback! " + msg);  
            }

            cordova.call(
                'cordova.plugins.barcodeScanner.scan', 
                [onSuccess, onError], 
                onCallback);
        });
    }
}
在Meteor Cordova应用程序中,Meteor.startup用作deviceready事件,因此您不需要deviceready事件.此外,cordova已在全局上下文中定义,因此您无需尝试创建新实例.最后,阅读plugins.cordova.io上的插件页面解释说该插件已命名为cordova.plugins.barcodeScanner.在您的情况下,barcodeScanner类的扫描方法特别重要.您可以在下面的流星中使用它,但请注意,当应用程序从完全停止启动时,这将打开扫描仪,因此最好从诸如点击事件之类的东西调用扫描方法.

if(Meteor.isCordova){
    Meteor.startup(function () {
        cordova.plugins.barcodeScanner.scan(
            function (result) {
                alert("We got a barcode\n" +
                  "Result: " + result.text + "\n" +
                  "Format: " + result.format + "\n" +
                  "Cancelled: " + result.cancelled);
            }, 
            function (error) {
                alert("Scanning failed: " + error);
            }
        );
    });
}
网友评论