수색…
비고
예제와 설명이 포함 된 유용한 Apple 설명서 .
URL 스키마를 기반으로 앱 열기
정의 된 URL 스키마로 애플리케이션을 열려면 todolist://
:
목표 -C
NSURL *myURL = [NSURL URLWithString:@"todolist://there/is/something/to/do"];
[[UIApplication sharedApplication] openURL:myURL];
빠른
let stringURL = "todolist://there/is/something/to/do"
if let url = NSURL(string: stringURL) {
UIApplication.shared().openURL(url)
}
HTML
<a href="todolist://there/is/something/to/do">New SMS Message</a>
참고 : 링크를 열어 사용자에게 적절한 메시지를 표시 할 수 있는지 확인하는 것이 좋습니다. 이것은
canOpenURL:
메소드를 사용하여 수행 할 수 있습니다.
자신의 앱에 URL 스키마 추가
MyTasks
라는 앱에서 작업하고 인바운드 URL이 제목과 본문이있는 새 작업을 만들도록하고 싶다고 가정 해 보겠습니다. 디자인중인 URL은 다음과 같이 보일 수 있습니다.
mytasks://create?title=hello&body=world
물론 text
및 body
매개 변수는 우리가 만드는 작업을 채우는 데 사용됩니다.
다음은 프로젝트에이 URL 체계를 추가하기위한 주요 단계입니다.
- 앱의
Info.plist
파일에 URL 스키마를 등록하면 시스템이 URL을 앱으로 라우팅Info.plist
알 수 있습니다. - 들어오는 URL을 받아들이고 처리하는
UIApplicationDelegate
함수를 추가하십시오. - 해당 URL을 열 때 발생해야하는 작업을 수행하십시오.
1 단계 : Info.plist에 URL 스키마 등록 :
먼저 Info.plist 파일에 "URL Types"항목을 추가해야한다. 여기서 (+) 버튼을 클릭하십시오 :
... 앱의 고유 식별자와 사용할 URL 스키마를 입력하십시오. 구체적으로 말하십시오! URL 스키마가 다른 앱의 구현과 충돌하지 않도록해야합니다. 너무 짧은 것보다 여기에 너무 오래있을수록 좋습니다!
2 단계 : UIApplicationDelegate에서 URL 처리
application:openURL:options:
을 UIApplicationDelegate
에 구현해야합니다. 들어오는 URL
검사하여 취할 수있는 조치가 있는지 확인합니다.
한 가지 구현은 다음과 같습니다.
func application(app: UIApplication, openURL url: NSURL, options: [String : AnyObject]) -> Bool {
if url.scheme == "mytasks" && url.host == "create" {
let title = // get the title out of the URL's query using a method of your choice
let body = // get the title out of the URL's query using a method of your choice
self.rootViewController.createTaskWithTitle(title, body: body)
return true
}
return false
}
3 단계 : URL에 따라 작업을 수행합니다.
사용자가 URL을 통해 앱을 열면 어떤 일이 발생할 것으로 예상됩니다. 어쩌면 그것이 콘텐츠로 이동하는 것일 수도 있습니다. 아마도 새로운 항목을 만드는 것일 수 있습니다.이 예에서 우리는 앱에서 새로운 작업을 생성 할 것입니다!
위의 코드에서 self.rootViewController.createTaskWithTitle(:body:)
대한 호출을 볼 수 있습니다. AppDelegate
에 함수를 올바르게 구현하는 루트보기 컨트롤러에 대한 포인터가 있다고 가정하면 모든 설정이 완료됩니다.
앱의 딥 링크 설정하기
앱에 딥 링크를 설정하는 것은 쉽습니다. 앱을 열고 자하는 작은 URL이 필요합니다.
단계에 따라 앱의 딥 링크를 설정하십시오.
프로젝트를 작성하고 DeepLinkPOC으로 이름을 붙일 수 있습니다.
이제 프로젝트 타겟을 선택하십시오.
대상을 선택한 후 '정보'탭을 선택하십시오.
URL 유형 옵션이 나타날 때까지 아래로 스크롤합니다.
'+'옵션을 클릭하십시오.
URL 스키마가 앱을 여는 데 사용할 문자열을 추가하는 것을 볼 수 있습니다. URL 스키마 에 " DeepLinking "을 추가하십시오.
따라서 앱을 열려면 사파리에 "DeepLinking : //" 을 입력하여 시작할 수 있습니다. 딥 링크 문자열의 형식은 다음과 같습니다.
[scheme]://[host]/[path] --> DeepLinking://path/Page1
여기서, Scheme : "DeepLinking"호스트 : "path"경로 : "Page1"
참고 : 호스트 및 경로를 추가하지 않아도 응용 프로그램이 실행되므로 걱정할 필요가 없습니다. 그러나 호스트 및 경로를 추가하여 응용 프로그램을 시작한 후 특정 페이지로 리디렉션 할 수 있습니다.
- 이제 appdelegate에 다음 메소드를 추가하십시오.
빠른:
func application(application: UIApplication, openURL url: NSURL, sourceApplication: String?, annotation: AnyObject) -> Bool
목표 -C :
-(BOOL)application:(UIApplication *)application
openURL:(NSURL *)url
sourceApplication:(NSString *)sourceApplication
annotation:(id)annotation
위 메소드는 앱에 설정 한 딥 링크 문자열을 사용하여 앱이 실행될 때마다 호출됩니다.
- 이제는 앱을 설치하고 곧바로 실행 버튼으로 이동하기 전에 기다려야합니다. 스킴의 앱 실행 방법을 조금 변경하면됩니다.
- 체계를 선택하고 편집하십시오.
이제 실행 버튼을 클릭하십시오 (didFinishLaunchingWithOptions 및 openURL 메소드에 중단 점을 추가하여 값을 관찰 할 수있게하려는 경우)
"DeepLinkPOC (또는 앱 이름) 대기 시작"이라는 메시지가 표시됩니다.
사파리를 열고 검색 창에 " DeepLinking : // "을 입력하면 " DeepLinkPOC 에서이 페이지 열기"라는 메시지가 나타납니다. 열어서 앱을 실행하십시오.
희망 앱에 딥 링크를 설정하는 방법을 알고 싶습니다. :)