Добавление cordova.js предотвращает геолокационный (или любой другой) обратный вызов - PullRequest
0 голосов
/ 28 октября 2019

Я создал проект Ionic для преобразования существующего веб-приложения AngularJS в гибридное приложение. Работает отлично.

Я добавил cordova-plugin-geolocation, чтобы геолокация работала, что и произошло, но я увидел, что cordova.plugins.diagnostic имеет лучшую поддержку, поэтому я добавил это. Однако, чтобы это работало, мне пришлось добавить в index.html <script src="cordova.js"></script>, которого раньше не было.

Итак, теперь я пытаюсь получить авторизацию местоположения при загрузке приложения следующим образом:

$ionicPlatform.ready(function() {
    if (window.cordova && window.cordova.plugins) {
        console.log('Cordova plugins ready');
        if (window.cordova.plugins.diagnostic) {
            console.log('Diagnostic plugin ready');
            window.cordova.plugins.diagnostic.getLocationAuthorizationStatus(evaluateGeolocationAuthorizationStatus, onGeolocationAuthorizationError);
        }
    }
});

При взгляде в консоль я вижу Diagnostic plugin ready, но ничего не происходит. Когда я запускаю в хромированной консоли window.cordova.plugins.diagnostic.getLocationAuthorizationStatus(function(status) {console.log('status: ' + status)}, function(error) {console.log (error)});, я получаю undefined.

Когда я пробую классический window.navigator.geolocation.getCurrentPosition(onSuccess, onError, options), я также получаю undefined.

Когда я удаляю <script src="cordova.js"></script> IУ меня нет доступа к window.cordova, но теперь обратный вызов window.navigator.geolocation.getCurrentPosition снова работает.

Короче говоря: добавление <script src="cordova.js"></script> предотвращает эти обратные вызовы.

Я уже удалил иснова добавили платформу Android, но все осталось прежним. Кто-нибудь может помочь?

ionic 5.2.2
cordova 9.0.0
cordova-android 8.1.0

мой файл package.json

{
  "name": "x",
  "version": "0.0.1",
  "description": "x",
  "devDependencies": {
    "@ionic/v1-toolkit": "^1.0.0",
    "gulp": "^3.5.6",
    "gulp-clean-css": "^3.7.0",
    "gulp-exec": "^4.0.0",
    "gulp-rename": "^1.2.0",
    "gulp-sass": "^3.1.0",
    "gulp-xml-transformer": "^3.0.0"
  },
  "dependencies": {
    "cordova-android": "^8.1.0",
    "cordova-plugin-geolocation": "^4.0.2",
    "cordova-plugin-ionic-keyboard": "^2.2.0",
    "cordova-plugin-ionic-webview": "^4.1.2",
    "cordova-plugin-splashscreen": "^5.0.3",
    "cordova-plugin-statusbar": "^2.4.3",
    "cordova-plugin-whitelist": "^1.3.4",
    "cordova.plugins.diagnostic": "^5.0.1"
  },
  "cordova": {
    "plugins": {
      "cordova-plugin-ionic-webview": {
        "ANDROID_SUPPORT_ANNOTATIONS_VERSION": "27.+"
      },
      "cordova-plugin-splashscreen": {},
      "cordova-plugin-statusbar": {},
      "cordova-plugin-whitelist": {},
      "cordova-plugin-ionic-keyboard": {},
      "cordova-plugin-geolocation": {},
      "cordova.plugins.diagnostic": {}
    },
    "platforms": [
      "android"
    ]
  }
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...