개발개발/Mac, iOS

iOS 지도앱 openURL

iolate 2012. 2. 27. 19:30
구글:
지정된 핀(임의 위치): http://maps.google.com/maps?f=q&q=좌표
그냥 핀 찍고 위치 공유로 나오는 주소를 때려 넣으면 됨. 좌표 뒤에 검색어 등은 지워도 됨. 있으면 작동 안할 수도 있음.
ex> @"http://maps.google.com/maps?f=q&q=35.855387,128.637478"
등록된 위치: maps://?q=검색어&cid=아이디
이 역시 지도 앱에서 검색한 후에 링크를 쏘는 것 추천...
특이하게 cid 가 있어도 쿼리 이름이 없으면 안되더라..지정된 핀의 경우 그냥 풀 URL 다 날려도 iOS 가 알아서 지도 앱을 실행시켜 주는데 등록된 위치의 경우 안되더라..
앱으로 직접 url 쏴줘야 함.
ex> @"maps://?q=%EA%B2%BD%EC%8B%A0%EA%B3%A0%EB%93%B1%ED%95%99%EA%B5%90&cid=16795864946373944557"

다음:

(요넘 힘들었다.. 결국 다음팀에 문의..ㅋ)
지정된 핀: daummaps://look?p=좌표
이 넘 역시 핀 찍고 주소 공유하면 http://local~~ 어쩌구 주소가 나오는데 그 뒷부분만 빼오면 된다.
ex> daummap://look?p=35.850000,128.630000

검색 결과: daummaps://search?q=검색어
정말로 검색 결과를 보여줌. 예시 필요도 없다. 위에 그대로 쿼리로 쏴도 된다..ㅋ

등록된 위치: daummaps://place?id=아이디
이 넘은 핀 찍고 주소 공유하면 http://~~~~place?confirmid=아이디
이렇게 주소를 준다. confirm 만 지워주면 됨. 노란색 핀으로 찍어준다.ㅋ
ex> @"daummaps://place?id=8197517"

네이버:
별거 없다. 모바일 페이지로 들어가면 앱에서 보기 링크가 있는데 그거 클릭해서 주소 빼오면 된다.
참고로 iOS 디바이스에서 실행하면 바로 지도앱이 켜져 버리니 불가능 하고, 사파리에서 모바일 페이지로 진입 후,
개발자 모드를 켜서 user agent 를 iOS 로 바꿔준다. 그러면 앱으로 보기 버튼이 활성화 되는데 그거 누르면 주소를 알아낼 수가 있다. 더럽게 길기도 하고 그 많은 값 중 하나라도 빼면 제대로 작동안함.

등록된 위치 뿌려주는 예시:
@"navermaps://?menu=location&pinType=place&lat=35.855549&lng=128.637438&title=%EA%B2%BD%EC%8B%A0%EA%B3%A0%EB%93%B1%ED%95%99%EA%B5%90&pinId=11594033" 



참고로 사파리가 아니라 앱에서 openURL 로 실행할 때 url에 한글이 있을경우 escape 해서 보내야 함.
NSURL 이 알아서 해줄줄 알았건만, 한글로 보내면 아예 URL 자체를 무시해버린다..