gpt4 book ai didi

javascript - ngCordova 无法识别相机、手电筒或 Android 手机的其他部分

转载 作者:行者123 更新时间:2023-11-29 21:00:24 26 4
gpt4 key购买 nike

我正在尝试使用 ionic framework 创建一个应用程序, 和 ngCordova

我已按照说明让相机正常工作

  • 使用 bower 安装 ngCordova
  • 在脚本标记中包含 ngCordova.js before ngCordova.js
  • 使用cordova plugin add org.apache.cordova.camera安装必要的插件

我的主 Controller 中包含文档中的示例代码:

var options = { 
quality : 75,
destinationType : Camera.DestinationType.DATA_URL,
sourceType : Camera.PictureSourceType.CAMERA,
allowEdit : true,
encodingType: Camera.EncodingType.JPEG,
targetWidth: 100,
targetHeight: 100,
popoverOptions: CameraPopoverOptions,
saveToPhotoAlbum: false
};

$cordovaCamera.getPicture(options).then(function(imageData) {
// Success! Image data is here
}, function(err) {
// An error occured. Show a message to the user
});

然后我使用 ionic platform add android 添加 android 作为平台,然后使用“ionic run”在我的手机上运行应用程序,同时我的 LG G2 手机通过 USB 连接。问题是,它不起作用。我收到以下错误:

ReferenceError: Camera is not defined
at new <anonymous> (file:///android_asset/www/js/app.js:36:45)
at invoke (file:///android_asset/www/lib/ionic/js/ionic.bundle.js:11591:17)
at Object.instantiate (file:///android_asset/www/lib/ionic/js/ionic.bundle.js:11602:23)
at file:///android_asset/www/lib/ionic/js/ionic.bundle.js:14906:28
at file:///android_asset/www/lib/ionic/js/ionic.bundle.js:14295:34
at forEach (file:///android_asset/www/lib/ionic/js/ionic.bundle.js:7957:20)
at nodeLinkFn (file:///android_asset/www/lib/ionic/js/ionic.bundle.js:14282:11)
at compositeLinkFn (file:///android_asset/www/lib/ionic/js/ionic.bundle.js:13730:13)
at compositeLinkFn (file:///android_asset/www/lib/ionic/js/ionic.bundle.js:13733:13)
at publicLinkFn (file:///android_asset/www/lib/ionic/js/ionic.bundle.js:13626:30)

为了弄清楚是 ngCordova 整体有问题,还是只是相机功能有问题,我还尝试通过相同的步骤并使用手电筒示例代码让手电筒工作:

var isAvailable = $cordovaFlashlight.available()

$cordovaFlashlight.switchOn() 。然后( function (success) {/* 成功 /}, function (error) {/ 错误 */});

当我尝试运行它时,我遇到了类似的错误。

TypeError: Cannot read property 'flashlight' of undefined
at Object.available (file:///android_asset/www/lib/ngCordova/dist/ng-cordova.js:1243:23)
at new <anonymous> (file:///android_asset/www/js/app.js:36:42)
at invoke (file:///android_asset/www/lib/ionic/js/ionic.bundle.js:11591:17)
at Object.instantiate (file:///android_asset/www/lib/ionic/js/ionic.bundle.js:11602:23)
at file:///android_asset/www/lib/ionic/js/ionic.bundle.js:14906:28
at file:///android_asset/www/lib/ionic/js/ionic.bundle.js:14295:34
at forEach (file:///android_asset/www/lib/ionic/js/ionic.bundle.js:7957:20)
at nodeLinkFn (file:///android_asset/www/lib/ionic/js/ionic.bundle.js:14282:11)
at compositeLinkFn (file:///android_asset/www/lib/ionic/js/ionic.bundle.js:13730:13)
at compositeLinkFn (file:///android_asset/www/lib/ionic/js/ionic.bundle.js:13733:13)

有人知道会发生什么吗?我觉得我已正确遵循文档中列出的步骤。

(作为完整性检查,我尝试记录 window.cordova 的值以检查它是否确实存在。但有趣的是,cordova.plugins 属性是一个仅包含属性“键盘”的对象。我本来期望它也有某种对相机和手电筒的引用。也许这与问题有关?)

最佳答案

您必须像下面的示例一样引用 cordovaFlashlight 插件

module.controller('MyController', function($scope, $cordovaFlashlight) {

关于javascript - ngCordova 无法识别相机、手电筒或 Android 手机的其他部分,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26303277/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com