gpt4 book ai didi

javascript - ionic2 ionic native 和 cordova-plugin-gyrograph 错误

转载 作者:行者123 更新时间:2023-11-28 04:37:46 25 4
gpt4 key购买 nike

我有一个 ionic2 应用程序,我想将陀螺仪与 ionic Native 和 cordova-plugin-gyrscope 一起使用,如下教程:

https://ionicframework.com/docs/native/gyroscope/

但我有这个错误

ERROR Error: Uncaught (in promise): TypeError: Cannot read property 'watch' of undefined
TypeError: Cannot read property 'watch' of undefined
at Observable._subscribe

...

import { Component } from '@angular/core';
import { NavController } from 'ionic-angular';
import { Gyroscope, GyroscopeOrientation, GyroscopeOptions } from '@ionic-native/gyroscope';

import { Platform } from 'ionic-angular';
import {geoCompassService} from '../../services/geocompass'
import * as Leaflet from "leaflet";

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

pointGps:any;
angle:any;
distance:any;
orientation:any;

constructor(private platform: Platform,
public navCtrl: NavController,
public _geoCompassService:geoCompassService,
private gyroscope: Gyroscope) {

platform.ready().then(() => {
console.log("platform ready !!!");
this.pointGps=this._geoCompassService.getPointGps();
this.angle = (Math.atan2(0,1) - Math.atan2(( this.pointGps.coordB.lng - this.pointGps.coordA.lng), ( this.pointGps.coordB.lat - this.pointGps.coordA.lat)))*180/Math.PI+180;
this.distance = Leaflet.latLng( this.pointGps.coordA).distanceTo(this.pointGps.coordB);




//Gyro
let options: GyroscopeOptions = {
frequency: 1000
};

this.gyroscope.getCurrent(options)
.then((orientation: GyroscopeOrientation) => {
this.orientation=orientation
console.log("orientation "+this.orientation.x)
})
.catch()

this.gyroscope.watch()
.subscribe((orientation: GyroscopeOrientation) => {
this.orientation=orientation
});


});

}

}

你能帮我吗

最佳答案

请注意,此插件仅适用于真实硬件,假设您使用的是浏览器而不是模拟器或真实设备,您的错误是可见的。

import { Component } from '@angular/core';
import { Gyroscope, GyroscopeOrientation, GyroscopeOptions } from '@ionic-native/gyroscope';
import {Platform} from "ionic-angular";

@Component({
selector: 'off-gyroscope',
templateUrl: 'gyroscope.html'
})
export class GyroscopeComponent {

options: GyroscopeOptions = {
frequency: 100
};
orientation: GyroscopeOrientation;
x: string;
y: string;
z: string;

constructor(public plt: Platform, private gyroscope: Gyroscope) {
plt.ready().then((readySource) => {

if (readySource == 'cordova') {
this.gyroscope.watch(this.options)
.subscribe((orientation: GyroscopeOrientation) => {
this.orientation = orientation;
this.x = orientation.x.toString();
this.y = orientation.y.toString();
this.z = orientation.z.toString();
});
}
else {
this.x = 'Not a real device';
this.y = 'Not a real device';
this.z = 'Not a real device';
}
});
}
}

至关重要的是 readySource 检查 dom(浏览器)或 cordova(模拟器/设备)。

不幸的是,文档缺少针对初学者如何处理“硬件”插件的明确提示。使用浏览器中使用的应用程序查看图像。

App in the browser

关于javascript - ionic2 ionic native 和 cordova-plugin-gyrograph 错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44040696/

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