HMS-Core / hms-cordova-plugin

This repo contains all of Cordova HMS plugins.
https://developer.huawei.com/consumer/en/doc/overview/HMS-Core-Plugin?ha_source=hms1
Apache License 2.0
87 stars 40 forks source link

Ionic + Cordova + Angular 16 - Cordova HMS Location #176

Open Burnie777 opened 2 weeks ago

Burnie777 commented 2 weeks ago

Description I am trying to add the location services to get a GPS location in the app, but I am not able to get the correct linking. Based on the Hauweis dev site The ionic native support is optional, however I believe that it not.

My app is running on ionic 7 with Angular 16, and rxJS 7.8.1.

Also, as ionic is no longer maintaining the @ionic-native plugins, I moved everything over to the @awesome-cordova-plugins. I did also notice on the demo code that Angular 15 was used...

Expected behavior I expect to get location.

Current behavior After force installing @ionic-native/core (which is Max rxJS 6.5.5):

ERROR Error: Uncaught (in promise): TypeError: n.location.checkLocationPermissions is not a function
TypeError: n.location.checkLocationPermissions is not a function

checkLocationPermissions is a method I created to get locations (which includes the android and ios version as well, as I am doing multi-platform

If @ionic-native/core is not installed, I get a error on build, which says that @ionic-native/core is not found...

Logs

./plugins/cordova-plugin-hms-location/ionic-native/dist/ngx/index.js:18:0-64 - Error: Module not found: Error: Can't resolve '@ionic-native/core' in '/Volumes/TOSHIBA/GitHub/payroll-app-ionic7/plugins/cordova-plugin-hms-location/ionic-native/dist/ngx'

[ERROR] An error occurred while running subprocess ng.

        ng run app:ionic-cordova-build --platform=android exited with exit code 1.

        Re-running this command with the --verbose flag may provide more information.
bernard@Bernards-Mini payroll-app-ionic7 %  npm install @ionic-native/core @hmscore/ionic-native-hms-location

npm ERR! code ERESOLVE
npm ERR! ERESOLVE unable to resolve dependency tree
npm ERR! 
npm ERR! While resolving: xpaylo@1.1.0.3
npm ERR! Found: rxjs@7.8.1
npm ERR! node_modules/rxjs
npm ERR!   rxjs@"~7.8.0" from the root project
npm ERR! 
npm ERR! Could not resolve dependency:
npm ERR! peer rxjs@"^5.5.0 || ^6.5.0" from @ionic-native/core@5.36.0
npm ERR! node_modules/@ionic-native/core
npm ERR!   @ionic-native/core@"*" from the root project
npm ERR! 
npm ERR! Fix the upstream dependency conflict, or retry
npm ERR! this command with --force or --legacy-peer-deps
npm ERR! to accept an incorrect (and potentially broken) dependency resolution.
npm ERR! 
npm ERR! 
npm ERR! For a full report see:
npm ERR! /Users/bernard/.npm/_logs/2024-04-16T13_01_15_048Z-eresolve-report.txt

npm ERR! A complete log of this run can be found in: /Users/bernard/.npm/_logs/2024-04-16T13_01_15_048Z-debug-0.log

Environment

Ionic:

   Ionic CLI                     : 7.2.0 
   Ionic Framework               : @ionic/angular 7.8.4
   @angular-devkit/build-angular : 16.1.2
   @angular-devkit/schematics    : 16.1.3
   @angular/cli                  : 16.1.3
   @ionic/angular-toolkit        : 10.0.0

Cordova:

   Cordova CLI       : 12.0.0 (cordova-lib@12.0.1)
   Cordova Platforms : android 12.0.1, ios 6.3.0
   Cordova Plugins   : cordova-plugin-ionic-keyboard 2.2.0, cordova-plugin-ionic-webview 5.0.0, (and 12 other plugins)

Utility:

   cordova-res : 0.15.4
   native-run  : 2.0.1

System:

   Android SDK Tools : 26.1.1
   ios-deploy        : 1.12.2
   ios-sim           : 8.0.2
   NodeJS            : v18.19.0 
   npm               : 10.2.3
   OS                : macOS Unknown
   Xcode             : Xcode 15.0 Build version 15A240d

   rxJS: 7.8.1

Other This is the first time that we are trying to implement the plugin to ionic 7, angular 16...

Burnie777 commented 2 weeks ago

I also now tried install only @hmscore/ionic-native-hms-location (without @ionic-native/core) and this also gave the same issue...

ERROR Error: Uncaught (in promise): TypeError: n.location.checkLocationPermissions is not a function
TypeError: n.location.checkLocationPermissions is not a function