딥 링크(Deep Links)란?
딥 링크 플러그인은 Android
앱 링크와 iOS
유니버셜 링크 모두에 대한 딥 링크 지원을 제공합니다.
특정 주소를 입력하면 앱이 실행
,앱 내 특정 화면으로 이동
시키는 링크를 말합니다.
딥링크는 3가지 방식
- URI 스킴 방식 : 앱에 URI 스킴(scheme) 값을 등록해 딥링크 사용
- 앱링크(App Link) : Andorid 제공 - 도메인 주소를 이용한 딥링크 사용
- 유니버셩 링크 (Universal Link) : iOS 제공 - 도메인 주소를 이용한 딥링크 사용
URI Scheme 방식
가장 일반적으로 사용되는 딥링크 방식은 URI Scheme 방식입니다. URI 스킴을 이용한 딥링크는 앱에 Scheme값을 등록하는 형태로 앱을 구분합니다. 스킴은 앱마다 등록할 수 있는 값으로 “특정 스킴값을 호출하면 특정 앱이 오픈된다.” 라는 약속을 실행합니다. 여러분이 트위터 앱을 오픈하고자 한다면 twitter:// 라는 스킴값을 이용하면 됩니다. 이 스킴값은 앱 개발시 효율적인 앱 오픈을 위해 자체적으로 개발사에서 자신들만의 값으로 등록을 하게 됩니다.
앱 내에서의 특정 페이지는 ‘path’ 값으로 구분합니다. 예를 들어, 트위터 앱의 회원가입 페이지를 오픈하고자 한다면 twitter://signup 이라는 값을 사용합니다.
정리하면, URI 스킴 방식은 Scheme://Path라는 두개의 요소로 구성됩니다.
- Scheme://Path
- Scheme = 앱을 특정함 (트위터)
- Path = 앱 내 페이지를 특정함 (트위터 내 회원가입 페이지)
- 안드로이드의 경우 아래와 같이 Androidmanifest.xml 이라는 파일에 스킴 값을 등록합니다.
javaScript에서 딥링크 방법
platform.ready 또는 deviceready event 에서 ionic deepLink 호출
import { Platform, NavController } from 'ionic-angular';
import { Deeplinks } from '@ionic-native/deeplinks/ngx';
export class MyApp {
constructor(
protected platform: Platform
, protected navController: NavController
, protected deeplinks: Deeplinks
) {
this.platform.ready().then(() => {
this.deeplinks.route({
'/about-us': HomePage,
'/products/:productId': HelpPage
}).subscribe((match) => { // subscribe : 앱이 정의된 경로와 일치하는 딥 링크를 처리하는 곳, 딥 링크가 경로 중 하나 일치하면 첫 번째 함수 내부의 코드가 실행됩니다.
// match.$route - the route we matched, which is the matched entry from the arguments to route()
// match.$args - the args passed in the link
// match.$link - the full link data
console.log('Successfully matched route', match);
},
(nomatch) => { // 해당 링크 일치하지 않음으로 콘솔에러 메시지
// nomatch.$link - the full link data
console.error('Got a deeplink that didn\'t match', nomatch);
});
});
}
}