I’m trying to integrate this plugin into my project. I installed it (per the instructions). I imported it into my
app.module.ts, and added it to my
providers array. And, I’m able to inject
DeviceOrientation into my page controller.
Up to this point, everything works – at least, in the sense that I don’t get any errors. However, as soon as I try to use the plugin (i.e., by calling
this.deviceOrientation.watchHeading().subscribe()), I get a console error. (I’m running my project in the Ionic DevApp on my Android phone.)
[12:47:09] console.warn: Native: tried calling DeviceOrientation.getCurrentHeading, but the DeviceOrientation plugin is not installed. [12:47:09] console.warn: Install the DeviceOrientation plugin: 'ionic cordova plugin add cordova-plugin-device-orientation'
I’ve tried running the suggested
ionic cordova plugin add command. It succeeds:
Adding cordova-plugin-device-orientation to package.json Saved plugin info for "cordova-plugin-device-orientation" to config.xml
But, my app still produces the same error.
I tried uninstalling and reinstalling the plugin, with the same result.
Also: the docs for this Cordova plugin say:
With the W3C Device Orientation API now being supported on iOS, Android and Windows devices, this plugin is not needed any more. Migrating from this plugin to the W3C Device Orientation API is explained in this PhoneGap blog post.
Is there an alternative service for Angular 4 that would be a suitable replacement for the DeviceOrientation plugin? I looked for one, but it’s a hard thing to Google. I know I could just roll my own using the browser’s native APIs – but it someone has already figured out the platform inconsistencies and a clean promise-based API, then I’d rather not reinvent the wheel.