最近在开发一个项目,客户有一个需求是这样的,用电脑端的微信客户端上的内置浏览器打开一个需要用到百度地图定位功能的页面,也能实现在电脑的微信客户端上的内置浏览器定位,可是现在在电脑端的微信内置浏览器打开该网页是没有定位成功的,整个百度地图api都没有加载成功,也无法查看那里报错;在手机端的微信上的内置浏览器打开是正常的,是可以用百度地图api定位的;有遇到这个问题的小伙伴,求大神解答
网友回复:
代码问题吧
我的那部分代码是这样的,可是在手机上就没有问题。
$("#tx").on('input propertychange',function(e){
search();
if($("#tx").val()==""){
$("#r-result").hide();
}else{
$("#r-result").show();
}
});
var map = new BMap.Map("map");
var geoc = new BMap.Geocoder();
var xarr=[];
var adda=[];
var proa=[];
$(document).ready(function(){
<!-- navigator.geolocation.getCurrentPosition(showPosition); -->
/* function showPosition(position) {
var gpsPoint = new BMap.Point(position.coords.longitude, position.coords.latitude);//HTML5的经纬度
BMap.Convertor.translate(gpsPoint, 0, function (point) {
var geoc = new BMap.Geocoder();
geoc.getLocation(point, function (rs) {
map.addControl(new BMap.NavigationControl());
map.addControl(new BMap.ScaleControl());
map.addControl(new BMap.OverviewMapControl());
map.addOverlay(new BMap.Marker(point)) ;
var addComp = rs.addressComponents;
search(addComp.province+addComp.city+addComp.district+addComp.street+addComp.streetNumber,2);
})
});
} */
function gog(){
var point = new BMap.Point();
map.centerAndZoom(point,14);
var geolocation = new BMap.Geolocation();
geolocation.getCurrentPosition(function(r){
if(this.getStatus() == BMAP_STATUS_SUCCESS){
//console.log(r);
map.panTo(r.point);
var addComp=r.address;
var add2=addComp.district+addComp.street+addComp.street_number;
//console.log("add2=="+add2)
$(".dwcity").html(addComp.city);
$("#tx").val(add2);
$(".dwcity2").hide();
$(".dwcity1").show();
}else {
console.log('failed'+this.getStatus());
}
},{enableHighAccuracy: true});
}
// 城市选择
var cityArr={
'A':[],'B':[],'C':[],'D':[],'E':[],'F':[],'G':[],'H':[],'I':[],'J':[],'K':[],'L':[],'M':[],'N':[],'P':[],'Q':[],'R':[],'S':[],'T':[],'W':[],'S':[],'X':[],'Y':[],'Z':[]
}
$.each(cityJson, function(idx, obj) {
$.each(cityArr, function(i, item) {
if(obj.item_code==i){
item.push(obj.item_name)
}
})
});
$.each(cityArr, function(idx, item) {
var navstr='';
var cityStr='';
var letter='';
for(i in item){
cityStr+="<p class='p1015 acity'>"+item[i]+"</p>";
}
letter="<p class='p1015 c_a3' id='city"+idx+"'>"+idx+"</p>"+cityStr;
$(".clist").append(letter);
navstr+='<a href="#city'+idx+'">'+idx+'</a>';
$('#citynav').append(navstr);
})
$(".acity").each(function(){
$(this).click(function(){
var myGeo = new BMap.Geocoder();
var txval=$(this).html();
//这里是自己选择的
myGeo.getPoint(txval, function(point){
if (point) {
map.centerAndZoom(point, 14);
map.addOverlay(new BMap.Marker(point));
}else{
console.log("您选择地址没有解析到结果!");
}
}, txval);
$("#citylist").hide();
$("#dwcity").html(txval);
$("#tx").val("");
$("#r-result").hide();
})
})
//地图展示
gog();
})
而且此时,$("#tx")上添加其他事件都没起作用,,,
我的这个定位是自动定位的,是需要用户授权的,在手机有授权弹窗出现,电脑端的微信上就没有了。
我把百度地图jsAPI上的例子,直接放到该页面中,在手机端是可以显示,在电脑端的微信就没有显示,,,你的是怎么弄?
自己代码的问题,解决了,