1
Apple Store에서 일부 테스트를했으며 지리적 위치 코드 (위도와 경도를 알고 있음)를 발견했으며 iPhone, iPod Touch 또는 iPad에서 작동하지 않습니다. MacBook/iMac에서 작동하도록 추가 코드를 추가해야했습니다.iPhone/iPod Touch/iPad에서 Geolocation 코드가 작동하지 않습니다.
누구나 iPod Touch/iPhone/iPad 기기에서 작동하는 위도/경도를 알 수있는 코드를 아십니까?
코드 :
// needed for iPhone/iPad/iTouch
<script type="text/javascript" src="http://maps.googleapis.com/maps/api/js?key=AIzaSyDrORw0RI-1v-5BixC4T_zLEhcBBwGzyuQ&sensor=true"></script>
// needed for iMac/MacBook
<script src="http://code.google.com/apis/gears/gears_init.js" type="text/javascript"></script>
<script src="http://gaychat.me/js/geo.js" type="text/javascript" ></script>
<script type="text/javascript"><!--
var ua = navigator.userAgent.toLowerCase();
var isAndroid = ua.indexOf("android") > -1;
var isIPhone = ua.indexOf("iphone") > -1;
var isIPod = ua.indexOf("ipod") > -1;
var isBlackberry = ua.indexOf("blackberry") > -1;
var isIPad = ua.indexOf("ipad") > -1;
if (isIPhone || isIPod || isIPad) {
function doGeo() {
var geolocator = new google.maps.Geocoder();
geolocator.geocode({},
function(results, status){
var geocoding_url = "geocoding.php?lat=" + results[0].geometry.location.lat() + "&long=" + results[0].geometry.location.lng() + "&email=<?=$brosforbros_email;?>&key=<?=$session_key;?>";
$.ajax({
url: geocoding_url,
success: function(data) {}
});
}
)
/*function geo_success(position) {
prev_lat = position.coords.latitude;
prev_long = position.coords.longitude;
var geocoding_url = "geocoding.php?lat=" + position.coords.latitude + "&long=" + position.coords.longitude + "&email=<?=$brosforbros_email;?>&key=<?=$session_key;?>";
$.ajax({
url: geocoding_url,
success: function(data) {}
});
}
function geo_error() {
}
if (!!navigator.geolocation) {
wpid = navigator.geolocation.watchPosition(geo_success, geo_error, {enableHighAccuracy:true, maximumAge:30000, timeout:27000});
}*/
}
} else if (geo_position_js.init()) { // needed for MacBook's/iMac with Safari
function doGeo() {
geo_position_js.getCurrentPosition(success_callback,error_callback,{enableHighAccuracy:true});
function success_callback(p) {
geo_lat = p.coords.latitude.toFixed(3);
geo_long = p.coords.longitude.toFixed(3);
var url = 'geolocation.php?geo_user_id=<?=$user_id;?>&geo_email=<?=$user_email;?>&geo_lat=' + geo_lat + '&geo_long=' + geo_long;
$.ajax({
url: url,
context: document.body,
success: function(data) {
// UPDATE GEOLOCATION
}
});
}
function error_callback(p) {
alert('error='+p.code);
}
}
} else {
var gl;
function getCookie(name) {
var start = document.cookie.indexOf(name + "=");
var len = start + name.length + 1;
if ((!start) && (name != document.cookie.substring(0, name.length))) {
return null;
}
if (start == -1) return null;
var end = document.cookie.indexOf(";", len);
if (end == -1) end = document.cookie.length;
return unescape(document.cookie.substring(len, end));
}
function displayPosition(position) {
geo_lat = position.coords.latitude;
geo_long = position.coords.longitude;
var url = 'geolocation.php?geo_user_id=<?=$user_id;?>&geo_email=<?=$user_email;?>&geo_lat=' + geo_lat + '&geo_long=' + geo_long;
$.ajax({
url: url,
context: document.body,
success: function(data) {
// UPDATE GEOLOCATION
}
});
}
function displayError(positionError) {
//alert("error");
}
function doGeo() {
try {
if (typeof navigator.geolocation === 'undefined'){
gl = google.gears.factory.create('beta.geolocation');
} else {
gl = navigator.geolocation;
}
} catch(e) {}
if (gl) {
gl.getCurrentPosition(displayPosition, displayError);
} else {
//alert("Geolocation services are not supported by your web browser.");
}
}
}
doGeo();
</script>
그래, 제대로 작동하므로 불행히도 스크립트의 다른 곳에서 버그가 발생합니다. –
최신 버전의 스크립트를 다운로드하십시오. 내가보고있는 한 가지는 Google에서 은퇴 한 장비를 포함시키는 것입니다. 그 일을하고 아직도 문제가 있다면 어떻게해야하는지 알려주세요. 현재 열려있는 버그를 인식하지 못했습니다. –
Ajax를 사용하여 PHP에 javascript 변수를 전달할 때 문제가 발생했습니다. 모바일 애플 기기에서만 왜 그런 일이 일어 났는지 나는 정말로 확신 할 수 없다. –