Meteor apk:Uncaught TypeError:无法读取属性' diagnostic'未定义的

时间:2017-07-05 06:56:57

标签: cordova meteor

我正在使用Cordova诊断插件。我在插件github自述文件中提到了如下所示的代码 但是我在运行cordova应用程序时遇到终端错误,如下所示:未捕获TypeError:无法读取属性'诊断'未定义的。但它在网络上运行良好。

       if (Meteor.isCordova) {
// check and request microphone access
cordova.plugins.diagnostic.getMicrophoneAuthorizationStatus(function(status) {
    if (status !== "GRANTED") {
      // if we don't have them request em.
      cordova.plugins.diagnostic.requestMicrophoneAuthorization(function(status) {
        //... do something
        return;
      });
    }
}, function() {
  throw new Meteor.error('failed to get permission for microphone');
});

}

1 个答案:

答案 0 :(得分:1)

  

我不是在等待被触发的deviceready事件。

这就是为什么它不起作用的原因。插件的JS元素在运行时由Cordova动态加载,因此不能保证在deviceready事件触发之前加载,这表示Cordova环境已完成设置。

在Meteor中,您可以使用Meteor.startup()函数执行此操作:

if (Meteor.isCordova) {
    // Wait for deviceready
    Meteor.startup(function () {
        // check and request microphone access
        cordova.plugins.diagnostic.getMicrophoneAuthorizationStatus(function(status) {
            if (status !== "GRANTED") {
              // if we don't have them request em.
              cordova.plugins.diagnostic.requestMicrophoneAuthorization(function(status) {
                //... do something
                return;
              });
            }
        }, function() {
          throw new Meteor.error('failed to get permission for microphone');
        });
    });
}