Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/400.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
';管道正在关闭';在Windows 8 Metro Javascript应用程序中使用地理定位器时出错_Javascript_Geolocation_Windows 8_Microsoft Metro - Fatal编程技术网

';管道正在关闭';在Windows 8 Metro Javascript应用程序中使用地理定位器时出错

';管道正在关闭';在Windows 8 Metro Javascript应用程序中使用地理定位器时出错,javascript,geolocation,windows-8,microsoft-metro,Javascript,Geolocation,Windows 8,Microsoft Metro,使用以下代码,我收到以下错误: the pipe is being closed 及 代码: 我在Windows8模拟器中运行此功能,并尝试启用和禁用模拟位置 导致此错误的原因是什么?使用地理定位器在启用GPS的真实设备和模拟器上成功检索用户位置的正确方式是什么?您的代码对我来说运行良好,无论是在本地计算机上还是在模拟器中,在Windows 8版本预览中 我在模拟器中测试了它,模拟位置打开和关闭 有一件事需要检查…您是否在应用程序清单的功能部分启用了位置 此外,您可能希望尝试将位置信息写入屏幕

使用以下代码,我收到以下错误:

the pipe is being closed

代码:

我在Windows8模拟器中运行此功能,并尝试启用和禁用模拟位置


导致此错误的原因是什么?使用地理定位器在启用GPS的真实设备和模拟器上成功检索用户位置的正确方式是什么?

您的代码对我来说运行良好,无论是在本地计算机上还是在模拟器中,在Windows 8版本预览中

我在模拟器中测试了它,模拟位置打开和关闭

有一件事需要检查…您是否在应用程序清单的功能部分启用了位置

此外,您可能希望尝试将位置信息写入屏幕…上面的代码将简单地将pos对象传递到控制台,因此即使您通过了错误,您实际上也不知道它是否返回了正确的地理位置信息

以下是我所做的:

  • 从一个新的空白JavaScript应用程序开始
  • 打开default.html,并将id“geo”添加到包含默认内容的
    标记中
  • 将以下代码添加到app.onactivated处理程序以进行测试(我在右括号之前添加了代码:

    var loc = new Windows.Devices.Geolocation.Geolocator();
    loc.getGeopositionAsync().done(function (pos) {
        console.log(pos);
        var geo = document.getElementById("geo");
        geo.innerText = pos.coordinate.latitude + ", " + pos.coordinate.longitude;
    }); 
    

  • 我正在测试的机器是一台没有GPS的笔记本电脑,因此基础API将使用WiFi或IP地址信息进行地理定位。如果GPS可用,则应将其用于位置数据,并对您的应用程序透明。

    您的代码对我来说运行良好,无论是在我的本地机器上还是在Windows 8版本预览版的模拟器中

    我在模拟器中测试了它,模拟位置打开和关闭

    有一件事需要检查…您是否在应用程序清单的功能部分启用了位置

    此外,您可能希望尝试将位置信息写入屏幕…上面的代码将简单地将pos对象传递到控制台,因此即使您通过了错误,您实际上也不知道它是否返回了正确的地理位置信息

    以下是我所做的:

  • 从一个新的空白JavaScript应用程序开始
  • 打开default.html,并将id“geo”添加到包含默认内容的
    标记中
  • 将以下代码添加到app.onactivated处理程序以进行测试(我在右括号之前添加了代码:

    var loc = new Windows.Devices.Geolocation.Geolocator();
    loc.getGeopositionAsync().done(function (pos) {
        console.log(pos);
        var geo = document.getElementById("geo");
        geo.innerText = pos.coordinate.latitude + ", " + pos.coordinate.longitude;
    }); 
    

  • 我正在测试的机器是一台没有GPS的笔记本电脑,因此基础API将使用WiFi或IP地址信息进行地理定位。如果GPS可用,则应将其用于对应用程序透明的位置数据。

    是的,这与我的示例相同。我的应用程序确实启用了位置功能。哪一行引发异常在上?您是否尝试过使用W3C地理位置语法?虽然我在开发人员预览后没有尝试过,但我能够成功地移植我当时使用W3C语法编写的一些代码。
    navigator.geolocation.getCurrentPosition(success,failure);
    函数成功(position){
    `console.log('You at:'+position.coords.latitude+','+position.coords.longitude+'!');“
    }
    我仍然收到相同的错误。感谢您的建议。我已经联系了Microsoft的一位同事,建议这是一个bug,尽管是间歇性的(因为你们似乎对此没有问题)。您是否一致地看到了问题?您是否有能力在另一台机器上测试它?是的,这与我的示例相同。我的应用程序确实启用了定位功能。哪一行引发了异常?您是否尝试过使用W3C地理定位语法?虽然我在开发人员预览后没有尝试过,但我能够成功成功地移植了我当时使用W3C语法编写的一些代码。
    navigator.geolocation.getCurrentPosition(成功,失败);
    function success(position){
    `console.log('您所在位置:'+position.coords.lation+','+position.coords.longitude+');`
    }
    我仍然收到相同的错误。感谢您的建议。我联系了Microsoft的一位同事,建议这是一个错误,尽管是间歇性的(因为你们似乎没有问题)。您是否一直看到这个问题?您是否有能力在另一台机器上测试它?
    var loc = new Windows.Devices.Geolocation.Geolocator();
    loc.getGeopositionAsync().done(function (pos) {
        console.log(pos);
        var geo = document.getElementById("geo");
        geo.innerText = pos.coordinate.latitude + ", " + pos.coordinate.longitude;
    });