【问题标题】:navigator.geolocation.GetCurrentPosition throws "The last location provider was disabled" errornavigator.geolocation.GetCurrentPosition 抛出“最后一个位置提供程序被禁用”错误
【发布时间】:2011-03-23 15:50:47
【问题描述】:

我正在尝试创建一个非常基本的 HTML5 页面来获取地理位置,但我遇到了一个错误。

这是我的“脚本”标签中的内容:

 function GetGeo() {
        if (!navigator.geolocation) {
            alert("Could not find geolocation");
        }
        else {
            navigator.geolocation.getCurrentPosition(showMap, function (error) { alert("error encountered: " + error.message ); });
        }
    }

    function showMap(position) {
        window.alert(position.coords.latitude + ", " + position.coords.longitude);
    }

页面上只有一个按钮,调用 GetGeo() 函数。

我所做的是将 .html 文件放到手机的 SDCard 上。然后,我浏览到“content://com.android.htmlfileprovider/sdcard/GetGeo.html”,页面显示正确。当我单击按钮并执行时,出现以下错误:“最后一个位置提供程序已禁用”

我有几个问题: 1:只是将html文件放到SDCard上并尝试在那里运行它是错误的吗? 2:我做错了什么基本的事情,没有让它从移动浏览器获取地理位置?

提前感谢您的帮助!

【问题讨论】:

  • 我想通了:我需要进入移动浏览器的设置并检查“启用位置”

标签: android html mobile geolocation android-2.2-froyo


【解决方案1】:

我想通了:我需要进入移动浏览器的设置并检查“启用位置”

【讨论】:

  • 我只是想说,因为我自己也有同样的问题。
  • 如果使用混合应用程序(cordova 基于嵌套 WebView 而不是浏览器)转到定位服务并启用所有选项 GPS 和 Wi-fi 将解决此问题,我刚刚使用 Cordova 3 .X 和 KitKat 都可以正常工作
【解决方案2】:

从 Android 设置选项卡启用所有位置源也很重要。转到设置,单击位置和安全。从这里,确保检查以下内容:(1) 使用无线网络,(2) 使用 GPS 卫星,(3) 使用传感器辅助。

还要确保清单中启用了以下权限:

<uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" />

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-04-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-05-04
    • 1970-01-01
    相关资源
    最近更新 更多