cordova 是否有办法访问只在某些时候定义的变量?

uqdfh47h  于 2022-11-15  发布在  其他
关注(0)|答案(1)|浏览(116)

这是用'use strict' javascript编写的,所以它对未声明的变量没有那么宽松。我的代码如下:

'use strict';

angular.module('myApp').factory('factoryName', function(){
   var plugins = cordova.require('cordova/plugin_list').metadata;
   ...
});

我遇到的问题是变量cordova只在某些时候被定义,这会导致运行时错误。当我的应用在带有cordova的移动的设备上构建和运行时,cordova显然被定义了,所以它运行良好-但它也在没有cordova的浏览器上运行,这会导致上面的代码块运行时崩溃。
有没有解决这个问题的方法?比如在使用cordova之前检查它是否被声明了?问题是抛出的错误来自一个未声明的变量,而不是来自阅读一个未定义的属性,所以执行if (cordova) {...}仍然会失败。或者有没有其他的方法来使用cordova而不像这样引用它?

n7taea2i

n7taea2i1#

我会执行if (typeof cordova !== 'undefined')

if (typeof cordova !== 'undefined') {
    console.log('hello');
}
console.log('it didnt crash');

相关问题