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

发布于 2022-09-11 21:10:55 字数 2435 浏览 30 评论 0

问题描述

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

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。
列表为空,暂无数据
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文