2017-04-25 62 views
1

我正尝试使用Ionic 2最简单的MediaCapture形式。我创建了一个全新的项目,并将其添加为here错误:在Ionic2中没有为MediaCapture提供程序

但是当我尝试使用它:

import { Component } from '@angular/core'; 
import { NavController } from 'ionic-angular'; 
import { MediaCapture, MediaFile, CaptureError, CaptureImageOptions } from '@ionic-native/media-capture'; 

@Component({ 
    selector: 'page-home', 
    templateUrl: 'home.html' 
}) 
export class HomePage { 

    constructor(private mediaCapture: MediaCapture) { 

    } 

} 

这个错误出现在(在它到底是我的环境信息):

Runtime Error 
Uncaught (in promise): Error: No provider for MediaCapture! Error at g (http://127.0.0.1:8100/build/polyfills.js:3:7133) at injectionError (http://127.0.0.1:8100/build/main.js:1511:86) at noProviderError (http://127.0.0.1:8100/build/main.js:1549:12) at ReflectiveInjector_._throwOrNull (http://127.0.0.1:8100/build/main.js:3051:19) at ReflectiveInjector_._getByKeyDefault (http://127.0.0.1:8100/build/main.js:3090:25) at ReflectiveInjector_._getByKey (http://127.0.0.1:8100/build/main.js:3022:25) at ReflectiveInjector_.get (http://127.0.0.1:8100/build/main.js:2891:21) at AppModuleInjector.NgModuleInjector.get (http://127.0.0.1:8100/build/main.js:3856:52) at resolveDep (http://127.0.0.1:8100/build/main.js:11260:45) at createClass (http://127.0.0.1:8100/build/main.js:11117:35) at createDirectiveInstance (http://127.0.0.1:8100/build/main.js:10954:37) at createViewNodes (http://127.0.0.1:8100/build/main.js:12303:49) at createRootView (http://127.0.0.1:8100/build/main.js:12208:5) at callWithDebugContext (http://127.0.0.1:8100/build/main.js:13339:42) at Object.debugCreateRootView [as createRootView] (http://127.0.0.1:8100/build/main.js:12800:12) 
Stack 
Error: Uncaught (in promise): Error: No provider for MediaCapture! 
Error 
    at g (http://127.0.0.1:8100/build/polyfills.js:3:7133) 
    at injectionError (http://127.0.0.1:8100/build/main.js:1511:86) 
    at noProviderError (http://127.0.0.1:8100/build/main.js:1549:12) 
    at ReflectiveInjector_._throwOrNull (http://127.0.0.1:8100/build/main.js:3051:19) 
    at ReflectiveInjector_._getByKeyDefault (http://127.0.0.1:8100/build/main.js:3090:25) 
    at ReflectiveInjector_._getByKey (http://127.0.0.1:8100/build/main.js:3022:25) 
    at ReflectiveInjector_.get (http://127.0.0.1:8100/build/main.js:2891:21) 
    at AppModuleInjector.NgModuleInjector.get (http://127.0.0.1:8100/build/main.js:3856:52) 
    at resolveDep (http://127.0.0.1:8100/build/main.js:11260:45) 
    at createClass (http://127.0.0.1:8100/build/main.js:11117:35) 
    at createDirectiveInstance (http://127.0.0.1:8100/build/main.js:10954:37) 
    at createViewNodes (http://127.0.0.1:8100/build/main.js:12303:49) 
    at createRootView (http://127.0.0.1:8100/build/main.js:12208:5) 
    at callWithDebugContext (http://127.0.0.1:8100/build/main.js:13339:42) 
    at Object.debugCreateRootView [as createRootView] (http://127.0.0.1:8100/build/main.js:12800:12) 
    at g (http://127.0.0.1:8100/build/polyfills.js:3:7133) 
    at l (http://127.0.0.1:8100/build/polyfills.js:3:6251) 
    at http://127.0.0.1:8100/build/polyfills.js:3:6805 
    at t.invokeTask (http://127.0.0.1:8100/build/polyfills.js:3:15213) 
    at Object.onInvokeTask (http://127.0.0.1:8100/build/main.js:4415:37) 
    at t.invokeTask (http://127.0.0.1:8100/build/polyfills.js:3:15134) 
    at n.runTask (http://127.0.0.1:8100/build/polyfills.js:3:10390) 
    at a (http://127.0.0.1:8100/build/polyfills.js:3:5313) 
Ionic Framework: 3.0.1 
Ionic App Scripts: 1.3.0 
Angular Core: 4.0.0 
Angular Compiler CLI: 4.0.0 
Node: 6.10.1 
OS Platform: macOS Sierra 
Navigator Platform: MacIntel 
User Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10_12_4) Ap 
+0

您是否已将“MediaCapture”添加到模块的'providers'属性中?你的模块是什么样的? – Saravana

+0

似乎你正在浏览器中测试?我认为这些插件只能在仿真器或真实设备上运行。 –

回答

2

最近,出现了一个变化,你将不得不将应用中使用的所有离子本地插件提供给app.module。因此,您应该将MediaCapture添加到app.module.ts文件的providers数组中。然后,它将开始工作

0

您需要将MediaCapture类添加到app.module.ts文件的poviders中,该文件位于app文件夹中。

import { MediaCapture } from '@ionic-native/media-capture'; 

@NgModule({ 
    declarations: [ 
    MyApp 
    ], 
    imports: [ 
    // 
    ], 
    bootstrap: [IonicApp], 
    entryComponents: [ 
    MyApp 
    ], 
    providers: [{provide: ErrorHandler, useClass: IonicErrorHandler}, MediaCapture ] 
}) 

export class AppModule {} 
相关问题