h5网页使用高德地图定位正常,网页嵌入安卓app后wifi定位正常,4g网络无法定位?

新手上路,请多包涵

问题描述

h5网页使用高德地图定位正常,网页嵌入安卓app后wifi定位正常,4g网络无法定位

问题出现的环境背景及自己尝试过哪些方法

h5网页手机浏览器打开没有问题,嵌入app后打包,安卓9.0系统,4g无法定位。使用的框架为appcan

相关代码

// 请把代码文本粘贴到下方(请勿用图片代替代码)
var map = new AMap.Map('map');

map.setZoom(18);

map.plugin('AMap.Geolocation', function() {
    var geolocation = new AMap.Geolocation({
        // 是否使用高精度定位,默认:true
        enableHighAccuracy : true,
        timeout:30000,
        // 定位按钮的停靠位置的偏移量,默认:Pixel(10, 20)
        buttonOffset : new AMap.Pixel(10, 20),
        //  定位成功后调整地图视野范围使定位位置及精度范围视野内可见,默认:false
        zoomToAccuracy : true,
        //  定位按钮的排放位置,  RB表示右下
        buttonPosition : 'RB',
        showMarker: false
    });

    map.addControl(geolocation);
    geolocation.getCurrentPosition(function(status, result) {
        if (status == 'complete') {
            onComplete(result);
        } else {
            onError(result);
        }
    });
    function onComplete(data) {
        // data是具体的定位信息
        var position = data.position;
        var pos = new AMap.LngLat(position.lng, position.lat);
        map.setCenter(pos);
    }

    function onError(data) {
        // 定位出错
        appcan.window.alert({
            title : '提示',
            content : '获取用户当前位置失败!',
            buttons : '确定'
        });
    }

})

map.on('click', function(ev) {
    // 触发事件的对象
    appcan.window.openToast({
        msg : '获取地址中...',
        duration : 2000,
        position : 5,
        type : 0
    })
    var lnglat = ev.lnglat;

    AMap.plugin('AMap.Geocoder', function() {
        var geocoder = new AMap.Geocoder({
            // city 指定进行编码查询的城市,支持传入城市名、adcode 和 citycode
            city : ''
        })
        var lngAndlat = [lnglat.lng, lnglat.lat]
        geocoder.getAddress(lngAndlat, function(status, result) {
            appcan.window.closeToast();
            if (status === 'complete' && result.info === 'OK') {
                // result为对应的地理位置详细信息
                lng = lnglat.lng;
                lat = lnglat.lat;
                address = result.regeocode.formattedAddress;
                appcan.window.alert({
                    title : '提示',
                    content : '当前选择地址是:' + result.regeocode.formattedAddress,
                    buttons : '确定'
                });
            }
        })
    })
});

你期待的结果是什么?实际看到的错误信息又是什么?

错误信息:Geolocation time out.Get ipLocation failed

阅读 4.4k
撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进