iOS 6가 설치된 기기에서 웹 페이지를 방문했을 때 해당 페이지 관련 native iOS 앱의 설치를 권하거나 이미 해당 앱이 설치되어 있다면 관련 앱을 클릭으로 바로 열어줄 수 있는 배너를 스크린 상단에 슬며시 띄워 주는 기능이 추가되었다.
소위 이 Smart App Banner를 띄우려면 페이지에다 다음과 같은 meta tag을 추가해주면 된다.

<meta name="apple-itunes-app" content="app-id=123456789, app-argument=x-sfp:///visit/seal-rocks">

content attribute에 있는 App-ID는 iTunes Link Maker를 통해서 얻을 수 있다. 그리고 app-argument(optional)는 방문한 페이지와 native App 간의 정보 전달 목적으로 사용되는데, 실제 URL 형식을 가지며 scheme이나 주소는 개발자가 아무것이나 적당한 것으로 지정해 줄 수 있다.

아래는 이렇게 해서 열리는 앱에서 delegate처럼 자동 실행되는 method로 openURL에는 app-argument에서 지정했던 URL을 받게 되면서 이곳의 정보를 확인해서 방문 페이지에 맞는 적절한 추가 조치를 취해줄 수 있겠다.

- (BOOL)application:(UIApplication *)application openURL:(NSURL *)url sourceApplication:(NSString *)sourceApplication annotation:(id)annotation;

WWDC 2012 Session 601 Optimizing Web Content in UIWebViews and Websites on iOS에서 소개된 내용으로, 단순한 native 앱의 광고기능 말고도 웹 앱과 이를 보완하는 native 앱 간의 상호 소통에 따른 풍부한 사용자 경험을 제공하는데 하나의 좋은 수단이 될 수도 있겠다.

정식 Safari 6가 어서 빨리 배포되길 기대하며.

관련된 주제의 글

“iOS 6의 Smart App Banner 기능”에 달린 4개의 댓글

스마트 앱 배너는 본인 사이트에 본인이 개발한 어플만 노출시킬 수 있는 건가요?
본인 사이트에 다른 사람이 개발한 어플을 노출시키거나, 다른 사이트에 본인이 만들 어플을 노출시키기 위해서는 아이튠즈의 app-id만 있으면 될까요?
그리고 app-id는 직접링크 주소에서 id부분만 복사해서 쓰면 되는 건가요?
사용해 보고 싶은데 스마트 앱 배너에 대한 자세한 정보가 담겨 있는 블로그는 찾기가 쉽지 않네요-ㅜㅜ

질문 한가지 더 드릴게요ㅎㅎ
스마트 앱 배너는 한사이트에 하나씩 밖에 못 띄우나요?
페이지별로 다른 배너를 띄울 수 있는지도 알려주세요:)

개발자 상관없이 app-id만 있으면 페이지에다 해당 app-id가 포함된 meta tag를 추가하면 배너를 띄우게 됩니다. 그리고 페이지별 서로 다른 app-id를 포함하는 meta tag를 추가하면 페이지별로 서로 다른 배너를 띄워 주겠지요.
app-id 값은 iTunes Link Maker에서 얻을 링크 중 id 뒤에 붙은 숫자만 가져다 붙이면 됩니다.

댓글을 남겨 주세요