2016-07-06 4 views
0

При выполнении следующего кода в моем проекте Ионные 2:Ионные 2 часов ошибка расположение

let options ={ 
    maximumAge: 3000, 
    timeout: 5000, 
    enableHighAccuracy: true 
} 


let geoWatch = Geolocation.watchPosition(options); 
geoWatch.subscribe((data) => { 
    alert("watch"); 

}) 

Im получая ошибку говоря: TypeError: Не удалось выполнить «watchPosition» на «геолокации» с обратным вызовом при условии поскольку параметр 2 не является функцией.

Я предполагаю, что это имеет отношение к неионному собственному синтаксису функции wathchposition, который ожидает, что функции succes и error будут являться параметрами.

Любой, кто знает, как это исправить?

ответ

0

TypeError: Failed to execute 'watchPosition' on 'Geolocation': The callback provided as parameter 2 is not a function.

Вы правы, параметры неверны:

id = navigator.geolocation.watchPosition(success, error, options) 

Так одна вещь, которую вы могли бы попробовать это делать это:

let geoWatch = Geolocation.watchPosition(options, subscribeToPosition, showError); 

// Success callback 
private subscribeToPosition(positionObj): void { 
    this.data = positionObj; 
    console.log(positionObj); 
} 

// Error callback 
private showError(errorObj): void { 
    // Handle the error. 
    console.log(errorObj); 
} 

======== ==============================

EDIT:

Я, хотя мы брали около navigator.Geolocation API, но в этом (удивительном) сообщении Джош использует плагин Geolocation cordova через Ionic Native (извините, мой плохой).

Как я могу видеть in the documentation:

This API is based on the W3C Geolocation API Specification, and only executes on devices that don't already provide an implementation. 

Так что я думаю, что вы должны проверить, если вы находитесь в веб-приложение (по делать this.platform.is('core')), и если вы, то вам нужно добавить предыдущий sintax (с обратными вызовами). Но если это false, то вы знаете, что ваше приложение выполняется на мобильном устройстве, и вы можете использовать sintax ionic-native, как в вашем коде. Я боюсь, вам нужно будет проверить это на реальном устройстве, чтобы быть уверенным.

+0

верно, но я хочу сохранить синтаксис машинопись Я в настоящее время использую. Я наткнулся на кучу примеров, которые используют тот же код, что и я, но у кого, похоже, нет такой же ошибки – vrijdrogenaam

+0

Но вызов метода путем передачи обратных вызовов (которые определены в машинописном файле sintax) также является машинописным. Не могли бы вы добавить ссылку на эти образцы кода, чтобы мы могли взглянуть на них? Должно быть, чего-то нам не хватает ... – sebaferreras

+0

вот вам! http://www.joshmorony.com/adding-background-geolocation-to-an-ionic-2-application/ – vrijdrogenaam

0

Обновление до Ionic-Native 1.3.20 решен вопрос для меня

Смежные вопросы