cordova - Dart的PhoneGap GeoLocation

标签 cordova gps dart phonegap-plugins

我一直在尝试使用Dart的地理定位方法,但没有成功,但是我有以下JS代码可以正常工作。

var onSuccess = function(position) {
    alert('Works');
};

function onError(error) {
    alert('error');
}

function test() {
    alert('js called');
    navigator.geolocation.getCurrentPosition(onSuccess, onError, {timeout: 10000, enableHighAccuracy: true});
}

从javascript中调用test()可以正常工作,并且会出现Works警报。但是,当我使用以下代码从Dart调用test()时,除“Js Called”外,均未发出任何警报。
context.callMethod("test",[]);

我不确定我在做什么错,任何指针都很好。

最佳答案

这段代码在Dartium和Chrome中对我来说效果很好:

import 'dart:html' as dom;

...    

dom.window.navigator.geolocation.getCurrentPosition()
.then(onSuccess)
..catchError((dom.PositionError error) {
    dom.window.alert("Error code: ${error.code}, Error message: ${error.message}");
})
..whenComplete(() => dom.window.alert("complete"));

要么
test() async {
  try {
    dom.Geoposition pos = await dom.window.navigator.geolocation.getCurrentPosition();
    dom.window.alert(pos.toString());
    dom.window.alert("complete");
  } on dom.PositionError catch(error) {
    dom.window.alert("Error code: ${error.code}, Error message: ${error.message}");
  }
}

我没有测试两种变体中的错误处理代码。

关于cordova - Dart的PhoneGap GeoLocation,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33935555/

相关文章:

iphone - GPS 坐标(以度为单位)来计算距离

android - GPS 位置波动

AndroidX 不兼容导致 Flutter Gradle 失败

javascript - 单击按钮以使用 JavaScript 生成结果

ios - 如何让 BarcodeScanner 插件在横向模式下工作?

android - 在不将用户转发到 "settings"的情况下启用 GPS?

dart - 如何将函数作为可选参数传递给 dart 函数中的默认值?

flutter - 内置在不同文件/类中的访问变量

java - 使用 Grade/ant 进行 Cordova 5 构建会抛出 java 编译错误

javascript - AngularJS:存储失败的http请求并稍后再试