【问题标题】:navigator.camera is undefined in AngularJS / Cordova projectnavigator.camera 在 AngularJS / Cordova 项目中未定义
【发布时间】:2016-12-09 08:07:28
【问题描述】:

我正在尝试从我的 Mobile Angular UI 项目中访问 Cordova 的相机插件。

navigator.geolocation 与所有其他 Cordova 东西一起工作,但是当我尝试访问 navigoator.camera 时,它返回为未定义。

当我不包含console.log(navigator) 相机时:

该插件是使用以下命令安装的,它位于我的插件文件夹中:

cordova插件添加cordova-plugin-camera

我目前正在尝试通过这样的工厂访问它:

angular.module('App.services.Camera', [
  'App.services.Cordova'
])

.factory('openCamera', function(deviceReady, $document, $window, $rootScope){
  return function(done) {
    deviceReady(function() {
      var srcType = Camera.PictureSourceType.CAMERA;
      var options = setOptions(srcType);
      var func = createNewFileEntry;
      navigator.camera.getPicture(function cameraSuccess(imageUri) {
        $rootScope.$apply(function(){
          done(imageUri);
        });
        displayImage(imageUri);
        func(imageUri);
      }, function cameraError(error) {
          console.debug("Unable to obtain picture: " + error, "app");

      }, options);
    });
  };
});

我是否需要在某处引用插件才能将其添加到我的项目中,还是我以错误的方式安装插件?

【问题讨论】:

  • 如果您想这样做,您可能会发现使用ngCordova 更容易。另外,您是否在浏览器中尝试过?那是行不通的——它实际上只能在移动设备上运行。
  • 我只做了模拟器,它显然也不起作用。你知道是否有办法在浏览器中进行测试吗?相比之下,在设备上进行测试会非常耗时。
  • 不,没有。我使用 Phonegap Build,它在 Adob​​e 的服务器上构建应用程序,通常我可以在几分钟内建立并运行一个新的构建。 iOS 的设置时间比 Android 长。
  • 您可以编写单元测试并模拟依赖项。就本地测试而言,就是这样。

标签: javascript angularjs cordova phonegap-plugins mobile-angular-ui


【解决方案1】:

快速清单。

  • 你是否在配置中添加插件。 xml? (如果没有,添加。如果为平台安装了插件,这将在每个构建中进行检查)

  • 您是否在真实设备中进行测试?插件无法在浏览器上运行(我认为是这样,所以请在设备上运行:ionic run android

【讨论】:

  • 是的,我没有在真实设备上运行它。谢谢!
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2018-07-08
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2017-07-17
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多