如何解决此科尔多瓦媒体捕获错误?

Posted

技术标签:

【中文标题】如何解决此科尔多瓦媒体捕获错误?【英文标题】:How can I solve this cordova media capture error? 【发布时间】:2020-07-29 14:07:46 【问题描述】:

我正在尝试通过 cordova 插件 Media Capture 在我的应用程序中注册视频。根据文档,这是我的代码:

startRegistration()
    var captureSuccess = function(mediaFiles) 
      var i, path, len;
      for (i = 0, len = mediaFiles.length; i < len; i += 1) 
          path = mediaFiles[i].fullPath;
          // do something interesting with the file
      
    ;
    // capture error callback
    var captureError = function(error) 

    ;
    navigator.device.capture.captureVideo(captureSuccess, captureError, limit:1);
  

我尝试编译代码,但收到以下错误:

Property 'device' does not exist on type 'Navigator'

出了什么问题?

【问题讨论】:

你使用的是什么版本的 ionic? @MuhammadUmair 离子 5.4.6 我已经添加了一个答案。如果您已经安装了最新的插件,请忽略第一行。 【参考方案1】:

它曾经在 Ionic 1 中像这样工作,但现在不是了。现在您还需要安装@ionic-native/media-capture

如果您已经安装了最新的插件,请跳过第一个命令。

ionic cordova plugin add cordova-plugin-media-capture
npm install @ionic-native/media-capture

安装后就可以这样使用这个插件了

import  MediaCapture, MediaFile, CaptureError, CaptureImageOptions  from '@ionic-native/media-capture/ngx';


constructor(private mediaCapture: MediaCapture)  

...


let options: CaptureImageOptions =  limit: 3 
this.mediaCapture.captureImage(options)
  .then(
    (data: MediaFile[]) => console.log(data),
    (err: CaptureError) => console.error(err)
  );

Here is the link where you can find details

CorodvaCapacitor 请相应地关注。您可以在此链接中找到两者的指南。

【讨论】:

我尝试了您发布的解决方案,但出现此错误:找不到模块 '@ionic-native/media-capture/ngx' 我尝试从路径中删除 /ngx。该应用程序在开始时崩溃并显示此错误: Uncaught TypeError: Object(...) is not a function at index.js:162 at Module../node_modules/@ionic-native/media-capture/index.js (index.js :247) 在 webpack_require (bootstrap:84) 在 Module../src/app/service/camera.service.ts (auth.interceptor.ts:22) 在 webpack_require (bootstrap:84) 在 Module../src/app/service/ruby-api.service.ts (env.service.ts:6) 在 webpack_require (bootstrap:84) 在 Module. ./src/app/app.module.ts (app.component.ts:12) 在 webpack_require (bootstrap:84) 在 Module../src/main.ts (environment.ts:19 ) 你是否使用npm install @ionic-native/media-capture安装了这个 是的,根据文档,我做到了

以上是关于如何解决此科尔多瓦媒体捕获错误?的主要内容,如果未能解决你的问题,请参考以下文章

如何在模拟器中部署离子应用程序时解决错误

如何解决此错误:未捕获的ReferenceError:未定义jQuery

NSURLConnection 完成错误 - 代码 -1100

如何解决此解码和语法错误

如何解决 WebGL Unity 游戏中的此错误?

如何解决此MarkerCluster签入/签出错误(传单salesforce)?