수색…


비고

예제와 설명이 포함 된 유용한 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

물론 textbody 매개 변수는 우리가 만드는 작업을 채우는 데 사용됩니다.

다음은 프로젝트에이 URL 체계를 추가하기위한 주요 단계입니다.

  1. 앱의 Info.plist 파일에 URL 스키마를 등록하면 시스템이 URL을 앱으로 라우팅 Info.plist 알 수 있습니다.
  2. 들어오는 URL을 받아들이고 처리하는 UIApplicationDelegate 함수를 추가하십시오.
  3. 해당 URL을 열 때 발생해야하는 작업을 수행하십시오.

1 단계 : Info.plist에 URL 스키마 등록 :

먼저 Info.plist 파일에 "URL Types"항목을 추가해야한다. 여기서 (+) 버튼을 클릭하십시오 : Info.plist에 새로운 행 추가하기

... 앱의 고유 식별자와 사용할 URL 스키마를 입력하십시오. 구체적으로 말하십시오! URL 스키마가 다른 앱의 구현과 충돌하지 않도록해야합니다. 너무 짧은 것보다 여기에 너무 오래있을수록 좋습니다! Info.plist에서 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이 필요합니다.

단계에 따라 앱의 딥 링크를 설정하십시오.

  1. 프로젝트를 작성하고 DeepLinkPOC으로 이름을 붙일 수 있습니다.

  2. 이제 프로젝트 타겟을 선택하십시오.

  3. 대상을 선택한 후 '정보'탭을 선택하십시오.

  4. URL 유형 옵션이 나타날 때까지 아래로 스크롤합니다.

  5. '+'옵션을 클릭하십시오.

  6. URL 스키마가 앱을 여는 데 사용할 문자열을 추가하는 것을 볼 수 있습니다. URL 스키마 에 " DeepLinking "을 추가하십시오.

따라서 앱을 열려면 사파리에 "DeepLinking : //" 을 입력하여 시작할 수 있습니다. 딥 링크 문자열의 형식은 다음과 같습니다.

[scheme]://[host]/[path]  --> DeepLinking://path/Page1

여기서, Scheme : "DeepLinking"호스트 : "path"경로 : "Page1"

참고 : 호스트 및 경로를 추가하지 않아도 응용 프로그램이 실행되므로 걱정할 필요가 없습니다. 그러나 호스트 및 경로를 추가하여 응용 프로그램을 시작한 후 특정 페이지로 리디렉션 할 수 있습니다.

  1. 이제 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

위 메소드는 앱에 설정 한 딥 링크 문자열을 사용하여 앱이 실행될 때마다 호출됩니다.

  1. 이제는 앱을 설치하고 곧바로 실행 버튼으로 이동하기 전에 기다려야합니다. 스킴의 앱 실행 방법을 조금 변경하면됩니다.
  • 체계를 선택하고 편집하십시오.

여기에 이미지 설명을 입력하십시오.

  • 발사 유형을 변경하고 닫기 여기에 이미지 설명을 입력하십시오.
  1. 이제 실행 버튼을 클릭하십시오 (didFinishLaunchingWithOptions 및 openURL 메소드에 중단 점을 추가하여 값을 관찰 할 수있게하려는 경우)

  2. "DeepLinkPOC (또는 앱 이름) 대기 시작"이라는 메시지가 표시됩니다.

  3. 사파리를 열고 검색 창에 " DeepLinking : // "을 입력하면 " DeepLinkPOC 에서이 페이지 열기"라는 메시지가 나타납니다. 열어서 앱을 실행하십시오.

희망 앱에 딥 링크를 설정하는 방법을 알고 싶습니다. :)



Modified text is an extract of the original Stack Overflow Documentation
아래 라이선스 CC BY-SA 3.0
와 제휴하지 않음 Stack Overflow