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);
}
======== ==============================
编辑:
我虽然我们采取了约navigator.Geolocation
API,但在那(真棒)后乔希是使用地理位置科尔多瓦插件通过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.
所以我认为你应该检查,如果你在一个Web应用程序(通过做this.platform.is('core')
)是,如果你是,那么你需要添加以前sintax(带回调)。但是,如果这是false
,那么您知道您的应用正在移动设备上执行,并且您可以像使用代码一样使用ionic-native
sintax。我担心你需要在真实的设备中测试它,只是为了确保。
是真的,但我想保留我正在使用的打字稿语法。我遇到了一堆使用与我相同的代码的例子,但是似乎没有相同的错误 – vrijdrogenaam
但是通过传递回调(在typescript sintax中定义)来调用方法也是打字稿。您可以添加这些代码示例的链接,以便我们可以看看它们吗?必须有我们缺少的东西... – sebaferreras
在这里你去! http://www.joshmorony.com/adding-background-geolocation-to-an-ionic-2-application/ – vrijdrogenaam