来自 Dart 的 PhoneGap GeoLocation

PhoneGap GeoLocation from Dart

我一直在尝试使用来自 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}");
  }
}

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