올해 프로젝트 개발 중에 저는 처음에 모바일 웹 개발과 접촉했으며 개발 중에 HTML5를 배웠습니다. 나는 주로 JQuery Mobile 기술을 사용했습니다. 인터넷 제품에 적합하지 않다는 것을 알았습니다. 대부분의 스타일은 다시 작성해야하며 일부 기능 만 사용됩니다. 휴대폰 웹을 개발하는 동안 처음으로 포지셔닝 기능에 노출되었습니다. 주요 검색 엔진을 통해 휴대폰의 위치는 브라우저 위치를 통해 이루어 졌음을 알았습니다. PC 브라우저에서 사용되면 "포지셔닝 기능 활성화 여부"프롬프트가 처음으로 나타납니다. 보스 가이 프롬프트를 보았을 때, 그는 사용자의 경험이 좋지 않다고 느꼈습니다. 그것이 좋지 않다면, 나는 그것을 다른 방식으로 구현할 것입니다. 이것은 큰 문제가 아닙니다. 보스의 얼굴은 크게 바뀌었고 그는 말했다 : 그런 경험은 없어야한다. 우리는 가능한 한 빨리 새로운 기능을 서두르고 출시하기 위해이 작업을 수행합니다.
1. 휴대 전화 웹 포지셔닝 방법 :
코드 사본은 다음과 같습니다.
var getLocation = function (successFunc, errorFunc) {// 성공적인 포지셔닝을 위해 콜백 함수를 가져옵니다. ERRORFUNC가 콜백 실패 포지셔닝을 가져옵니다.
// 기본 도시를 먼저 설정합니다
var defcity = {
ID : '000001',
이름 : '베이징',
날짜 : curdateTime () // 현재 시간 방법을 가져옵니다
};
// 기본 도시
$ .cookie ( 'vpiao_mobile_defaultcity', json.stringify (defcity), {만료 : 1, 경로 : '/'});
if (navigator.geolocation) {
navigator.geolocation.getCurrentPosition (함수 (위치) {
var lat = position.coords.latitude;
var lon = position.coords.longitude;
// var map = new bmap.map ( "컨테이너"); // 맵 인스턴스를 만듭니다
var point = new bmap.point (lon, lat); // 포인트 좌표를 만듭니다
var gc = new bmap.geocoder ();
gc.getLocation (point, function (rs) {
var addComp = rs.AddressComponents;
var curcity = {
ID: '',
이름 : addcomp.province,
날짜 : curdateTime ()
};
// 현재 위치에 위치하고 있습니다
$ .cookie ( 'vpiao_mobile_currentcity', json.stringify (Curcity), {expires : 7, path : '/'});
//alert(AddComp.province + "," + addComp.city + "," + addComp.District + "," + addComp.street);
if (success -func! = undefined)
SuccessFunc (AddComp);
});
},
함수 (오류) {
스위치 (error.code) {
case 1:
경고 ( "위치 서비스 거부");
부서지다;
case 2:
경고 ( "위치 정보를 당분간 얻을 수 없습니다.");
부서지다;
사례 3 :
ALERT ( "위치 정보 시간 초과 가져 오기");
부서지다;
기본:
경고 ( "알 수없는 오류");
부서지다;
}
var curcity = {
ID : '000001',
이름 : '베이징',
날짜 : curdateTime ()
};
// 기본 도시
$ .cookie ( 'vpiao_mobile_defaultcity', json.stringify (Curcity), {만료 : 1, 경로 : '/'});
if (errorfunc! = 정의되지 않은)
ErrorFunc (오류);
}, {timeout : 5000, enablehighaccuracy : true});
} 또 다른 {
ALERT ( "브라우저는 지리적 위치 정보 얻기를 지원하지 않습니다.");
if (errorfunc! = 정의되지 않은)
errorfunc ( "브라우저는 지리적 위치 정보 얻기를 지원하지 않습니다.");
}
};
var showposition = function (위치) {
var lat = position.coords.latitude;
var lon = position.coords.longitude;
// var map = new bmap.map ( "컨테이너"); // 맵 인스턴스를 만듭니다
var point = new bmap.point (lon, lat); // 포인트 좌표를 만듭니다
var gc = new bmap.geocoder ();
gc.getLocation (point, function (rs) {
var addComp = rs.AddressComponents;
var curcity = {
ID: '',
이름 : addcomp.province,
날짜 : curdateTime ()
};
// 현재 위치에 위치하고 있습니다
$ .cookie ( 'vpiao_mobile_currentcity', json.stringify (Curcity), {expires : 7, path : '/'});
//alert(AddComp.province + "," + addComp.city + "," + addComp.District + "," + addComp.street);
});
};
var showpositionError = function (오류) {
스위치 (error.code) {
case 1:
경고 ( "위치 서비스 거부");
부서지다;
case 2:
경고 ( "위치 정보를 당분간 얻을 수 없습니다.");
부서지다;
사례 3 :
ALERT ( "위치 정보 시간 초과 가져 오기");
부서지다;
기본:
경고 ( "알 수없는 오류");
부서지다;
}
var curcity = {
ID : '000001',
이름 : '베이징',
날짜 : curdateTime ()
};
// 기본 도시
$ .cookie ( 'vpiao_mobile_defaultcity', json.stringify (Curcity), {만료 : 1, 경로 : '/'});
};
전제 조건은 Baidu API를 소개하는 것입니다.
2. PC 측면은 IP 방법을 구현합니다.
Tencent에서 제공하는 인터페이스를 사용하면 더 이상 사용할 수 없습니다.
코드 사본은 다음과 같습니다.
<script type = "text/javaScript"src = "http://fw.qq.com/ipaddress"> </script>
<script type = "text/javaScript">
document.write (ipdata [0]); // IP 주소 표시
document.write (ipdata [2]); // 저장을 보여줍니다
document.write (ipdata [3]); // 도시를 보여줍니다
</스크립트>
Sina 인터페이스 채택 : http://int.dpool.sina.com.cn/iplookup/iplookup.php?format=js
멀티 지역 테스트 방법 : http://int.dpool.sina.com.cn/iplookup/iplookup.php?format=js&ip=127.0.0.1
코드 사본은 다음과 같습니다.
<script type = "text/javaScript">
$ .getScript ( 'http://int.dpool.sina.com.cn/iplookup/iplookup.php?format=js', function (_result) {
if (remote_ip_info.ret == '1') {
ALERT ( 'Country :' + remote_ip_info.country + '<br> 지방 :' + remote_ip_info.province + '<br> city :' + remote_ip_info.city + '<br> local :' + remote_ip_info.district + '<br> isp :' + remote_ip_info.isp + '<br> type :' + remote_ip_info.isp + '<br> remote_ip_info.type + '<br> 기타 :' + remote_ip_info.desc);
} 또 다른 {
경고 ( '일치하는 IP 주소 정보가 발견되지 않았습니다!');
}
});
</스크립트>
Netease Youdao IP 주소 인터페이스 (테스트해야합니다)
http://www.youdao.com/smartresult-xml/search.s?type=ip&q=ip 주소
Taobao 요청 인터페이스 (GET)
코드 사본은 다음과 같습니다.
<cript>
var IP = "124.127.108.133";
var url = "http://ip.taobao.com/service/getipinfo.php?ip=" + ip;
$ .getJson (url, function (json) {
var myprovince2 = json.data.area;
var mycity2 = json.data.region;
경고 ( "당신의 도시는 :" + myprovince2 + mycity2);
});
</스크립트>
태평양 IP 주소 라이브러리 API 인터페이스
http://whois.pconline.com.cn/?ip=] 주소 문자열]
또한 : Google, Sohu 및 기타 인터페이스는 해당 인터페이스를 제공하므로 직접 시도 할 수 있습니다.
SOHU IP 주소 쿼리 인터페이스 (기본 GBK) : http://pv.sohu.com/cityjson
SOHU IP 주소 쿼리 인터페이스 (인코딩이 설정 될 수 있음) : http://pv.sohu.com/cityjson?ie=utf-8
Sohu의 다른 IP 주소 쿼리 인터페이스 : http://txt.go.sohu.com/ip/soip
3. 클라이언트 IP 방법을 얻습니다
코드 사본은 다음과 같습니다.
<cript>
var url = 'http://chaxun.1616.net/s.php?type=ip&output=json&callback=?&_=' + math.random ();
$ .getJson (url, function (data) {
경고 (data.ip);
});
</스크립트>
그게 다야. 아직 완료해야 할 작업이 여전히 많습니다. 시간이 있으면 다른 인터페이스를 시도 할 수 있습니다. 모두가 와서 더 나은 방법을 제공 할 수 있습니다.