Я создал проект 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"
]
}
}