为什么我的https来源没有使用导航地理定位服务的权限?

时间:2016-09-19 20:53:04

标签: javascript ios html5 safari geolocation

尝试使用以下代码获取用户位置时:

var geoLocationProvider = new Microsoft.Maps.GeoLocationProvider(BingMap.map);

geoLocationProvider.getCurrentPosition(
{
    showAccuracyCircle: false,
    timeout: 6000,
    successCallback: function (object) {

        if (navigator.geolocation) {

            //alert(ret);
            SearchViewModel.ConsoleLog("watchPosition first try from getCurrentPosition successCallback");

            BingMap.SetGPSLoading();
            BingMap.trackingID = navigator.geolocation.watchPosition(BingMap.navigatorSuccess, BingMap.navigatorFail, { maximumAge: 4000, timeout: 10000, enableHighAccuracy: true });
        }
    },
    errorCallback: function (error) {
        if (navigator.geolocation) {
            console.log(error);
            alert(error.internalError.message);
            SearchViewModel.ConsoleLog("watchPosition first try from getCurrentPosition errorCallback");
            BingMap.SetGPSLoading();
            BingMap.trackingID = navigator.geolocation.watchPosition(BingMap.navigatorSuccess, BingMap.navigatorFail, { maximumAge: 4000, timeout: 10000, enableHighAccuracy: true });
        }
    }

});

我在本机应用程序和Safari浏览器中的iOS10设备上收到错误,告诉我 Origin(https://domain.com)没有使用Geolocation服务的权限。代码所在的测试服务器有一个自签名证书,所以我不知道这是不是问题,或者某处存在其他配置问题。

作为旁注,所有适用的密钥都已添加到我的本地iOS应用程序的info.plist文件中。

1 个答案:

答案 0 :(得分:0)

一堆问题:

  1. 您是否添加了API密钥? (使用'凭证'参数)
  2. 您使用开发人员/企业的许可证是什么?您的许可证的凭证可能有限。
  3. 您知道Bing Maps API中有不同类型的服务吗?阅读here。查看Platforms表。不支持iOS(甚至是Android)。