未捕获的TypeError:无法读取未定义的属性“振动”

时间:2020-06-07 21:54:37

标签: typescript ionic-framework capacitor

下午好,对不起,我的英语不好,我对离子电容器有疑问,我正在尝试使用振动插件,文档中没有描述太多内容,但是我是从android终端获取的录制此消息

错误:

enter image description here

这是我的代码:

import { Plugins, CameraResultType } from '@capacitor/core';
import { Vibration } from '@ionic-native/vibration/ngx';

const { Camera } = Plugins

interface Props extends React.Props<ControlVibratorComponent> {

}

export default class ControlVibratorComponent extends React.Component<Props>{

    constructor(props: any, private vibration: Vibration) {
        super(props);
    }

    changeNotificationState(e: any) {
        if (e.detail.value > 0) {
            console.log('vibrando');
            // this.vibration.vibrate([2000, 1000, 2000]);
            // console.log(this.vibration);
            this.vibration.vibrate(2000);
        } else {
            console.log('stop');
            this.vibration.vibrate(0);
        }
    }
}

2 个答案:

答案 0 :(得分:1)

我不知道Cordova插件是否可以与Capacitor一起使用。但是,如果是这样,使用此插件的步骤是:

1-添加插件:

ionic cordova plugin add cordova-plugin-vibration

2-安装软件包:

npm install @ionic-native/vibration

3-将其导入app.module.ts并将其添加到提供程序中:

import {YourPlugin} from './path-to-your-plugin-in-node_modules';

@NgModule({
  ...
  providers: [
    ...
    YourPlugin
    ...
  ],
  ...
})
export class AppModule {
}

将其导入到组件控制器(.page.ts文件)中,并在构造函数中创建一个实例,并使用其方法:

import {YourPlugin} from './path-to-your-plugin-in-node_modules';

@Component({
  selector: 'app-somepage',
  templateUrl: './somepage.page.html',
  styleUrls: ['./somepage.page.scss'],
})
export class SomepagePage implements OnInit, AfterViewInit {

  constructor(private plugin: YourPlugin) {
  }
}

如果您进行了其他任何操作,都会出错。再次这样做。

答案 1 :(得分:1)

如果您是使用Capacitor构建您的应用,则最好在任何可能的地方使用电容器插件。 对于振动,您可以使用电容器Haptics Plugin