Xamarin.ios의 앱 검색 향상 기능App Search Enhancements in Xamarin.iOS

이 문서에서는 iOS 10의 앱 검색에 대 한 Apple의 향상 된 기능과 Xamarin.ios에서 앱을 구현 하는 방법을 설명 합니다.This article covers the enhancements Apple has made to App Search in iOS 10 and how to implement them in Xamarin.iOS.

IOS 10에서 Apple은 라우드 소싱 딥 링크, 앱 내 검색, 검색 연속 및 유효성 검사 결과 시각화와 같은 앱 검색에 대해 몇 가지 향상 된 기능을 만들었습니다.In iOS 10, Apple has made several enhancements to App Search such as Crowdsourced Deep-Linking, In-App Searching, Search Continuation and Visualization of Validation Results. 이 문서에서는 Xamarin.ios 앱에서 이러한 기능을 구현 하는 방법을 다룹니다.This article will cover implementing these features in a Xamarin.iOS app.

앱 검색 기능 향상 정보About App Search Enhancements

IOS 10의 핵심 스포트라이트는 다음과 같은 앱 검색에 대 한 몇 가지 향상 된 기능을 제공 합니다.Core Spotlight in iOS 10 provides several enhancements to App Search such as:

  • 라우드 소싱 딥 링크 인기도 (차등 개인 정보 포함) -검색 결과에서 딥 링크 된 앱 콘텐츠를 승격 하는 방법을 제공 합니다.Crowdsourced Deep-Link Popularity (with differential privacy) - Provides a way to promote deep-linked app content in search results.
  • 앱 내 검색 -새 CSSearchQuery 클래스를 사용 하 여 메일, 메시지 및 메모 앱이 작동 하는 방식과 유사한 앱 내 스포트라이트 검색 기능을 제공 합니다.In-App Searching - Use the new CSSearchQuery class to provide in-app Spotlight search ability similar to how the Mail, Messages and Notes apps work.
  • 연속 검색 -사용자가 스포트라이트 또는 Safari에서 검색을 시작한 다음 앱을 열고 검색을 계속할 수 있습니다.Search Continuation - Allows a user to start a search in Spotlight or Safari, then open an app and continue that search.
  • 유효성 검사 결과 시각화 -Apple의 앱 검색 API 유효성 검사 도구 는 이제 테스트를 미리 구성할 때 웹 사이트의 태그 및 딥 링크를 시각적으로 표시 합니다.Visualization of Validation Results - Apple's App Search API Validation Tool now displays a visual representation of a website's markup and deep-linking when preforming tests.
  • 메시지 앱 이미지 공유 -메시지에서 공유할 수 있도록 제공 되는 인기 있는 앱 이미지 (메시지 앱 확장을 통해)는 스포트라이트 검색에 표시 됩니다.Message App Image Sharing - Allows popular in-app images provided for sharing in Messages (via a Message App Extension) to appear in Spotlight searches.

다음 섹션에서는 이러한 항목을 자세히 설명 합니다.The following sections will cover these topics in more detail.

iOS 10은 앱에 대 한 인기 있는 딥 링크의 빈도를 계산 하는 메커니즘을 제공 하며,이 정보를 사용 하 여 검색 결과에서 앱 콘텐츠의 순위를 개선 하는 동시에 차등을 사용 하 여 사용자의 id를 보호 합니다. 개인 정보.iOS 10 provides a mechanism to count the frequency that popular deep-links into an app are followed by the user and uses this information to improve the ranking of an app's content in search results, while still protecting the user's identity by using Differential Privacy.

NSUserActivity 개체를 사용 하 여 딥 링크 Url을 제공 하 고 EligibleForPublicIndexing 속성을 true로 설정 하는 앱의 경우 iOS 10은 Apple의 서버에 차등 개인 정보 취급 방침 의 하위 집합을 제출 합니다.For app's that use NSUserActivity objects to provide deep-link URLs and have the EligibleForPublicIndexing property set to true, iOS 10 submits a subset of Differential Privacy Hashes to Apple's servers. 이 정보는 검색 결과에서 널리 사용 되는 앱 내 콘텐츠를 승격 하는 데 사용 됩니다.This information is then used to promote popular in-app content in search results.

Xamarin.ios 앱에서 딥 링크를 구현 하는 방법에 대 한 자세한 내용은 Search With NSUserActivity 설명서를 참조 하세요.For more information on implementing deep-linking in a Xamarin.iOS app, please see our Search with NSUserActivity documentation.

앱 내 검색In-App Searching

Cssearchquery 클래스를 구현 하 여 앱은 사용자가 앱을 떠나지 않고도 (메일, 메시지 및 메모 앱이 작동 하는 방식과 비슷함) 스포트라이트의 검색 및 일치 규칙 기술을 제공 하 여 자체 내에서 콘텐츠를 찾을 수 있습니다.By implementing the new CSSearchQuery class, an app can provide Spotlight's search and matching rule technology to find content inside of itself, without the user having to leave the app (similar to how the Mail, Messages and Notes app work).

일반적으로 CSSearchQuery를 지 원하는 앱은 별도의 검색 인덱스를 유지 관리할 필요가 없습니다.Typically, apps that support CSSearchQuery will not need to maintain their own, separate search index.

연속 검색Search Continuation

IOS 9에서 Apple은 검색 Api (예: 핵심 스포트라이트, NSUserActivity 및 웹 태그)를 도입 하 여 앱 내에서 사용자가 스포트라이트 및 Safari 검색 인터페이스를 모두 사용 하 여 콘텐츠를 검색할 수 있도록 하는 기능을 제공 합니다.In iOS 9, Apple introduced the Search APIs (such as Core Spotlight, NSUserActivity and web markup) to provide deep-liking of content within an app to allow users to search for that content using both the Spotlight and Safari search interfaces. 자세한 내용은 새 검색 api 설명서를 참조 하세요.See our New Search APIs documentation for more details.

IOS 10 Apple은 사용자가 스포트라이트 나 Safari에서 검색을 시작할 수 있도록 허용 하 여이 기능을 기반으로 한 다음 앱을 열 때 검색을 계속 합니다.In iOS 10 Apple builds upon this feature by allowing the user to start a search in Spotlight or Safari, then continue the search when they open an app.

이 기능을 구현 하려면 앱의 Info.plist 파일을 편집 하 고 부울 형식의 CoreSpotlightContinuation 키를 추가 하 고 해당 값을 YES로 설정 합니다.To implement this feature, edit the app's Info.plist file, add the CoreSpotlightContinuation key of type Boolean and set its value to YES:

사용자에 게 응답 하 여 검색 결과 (NSUserActivity)를 계속 하려면 AppDelegate.cs 파일을 편집 하 고 ContinueUserActivity 메서드를 재정의 합니다.To respond to the user continuing a search result (NSUserActivity), edit the AppDelegate.cs file and override the ContinueUserActivity method. 예를 들면,For example:

public override bool ContinueUserActivity (UIApplication application, NSUserActivity userActivity, UIApplicationRestorationHandler completionHandler)
{

    // Take action based on the activity type
    switch (userActivity.ActivityType) {
    case "com.xamarin.platform":
        // Restore the state of the app here...
        break;
    default:
        if (userActivity.ActivityType == CSSearchQuery.ContinuationActionType) {
            var search = userActivity.UserInfo.KeyForValue(CSSearchQuery.QueryString);
            // Continue user's search here...
        }
        break;
    }

    return true;
}

이 코드는 쿼리 연속 작업 형식 (userActivity.ActivityType == CSSearchQuery.ContinuationActionType)을 찾은 다음 NSUserActivity 클래스의 사용자 정보 사전 (userActivity.UserInfo.KeyForValue(CSSearchQuery.QueryString))에서 사용자의 현재 쿼리를 읽습니다.This code looks for the query continuation action type (userActivity.ActivityType == CSSearchQuery.ContinuationActionType), then reads the user's current query from the NSUserActivity class's user info dictionary (userActivity.UserInfo.KeyForValue(CSSearchQuery.QueryString)). 여기에서 앱은 사용자의 검색을 계속 하기 위해 작업을 수행 해야 합니다.From here, the app needs to take action to continue the user's search.

Xamarin.ios 앱에서 검색을 사용 하는 방법에 대 한 자세한 내용은 Core 스포트라이트를 사용한 검색 설명서를 참조 하세요.For more information on working with searches in a Xamarin.iOS app, please see our Search with Core Spotlight documentation.

유효성 검사 결과 시각화Visualization of Validation Results

이제 Apple의 앱 검색 API 유효성 검사 도구 는 테스트를 미리 구성할 때 웹 사이트의 태그 및 딥 링크 ( Schema.org에 정의 된 태그 포함)의 시각적 표시를 표시 합니다.Apple's App Search API Validation Tool now displays a visual representation of a website's markup and deep-linking (including markup such as defined at Schema.org) when preforming tests.

개발자는 유효성 검사 도구를 사용 하 여 제목, 설명, URL 및 지원 되는 기타 모든 요소와 같은 사이트에 대해 인덱싱된 Ebot 웹 크롤러가 인덱싱된 정보를 볼 수 있습니다.By using the Validation Tool, a developer can see the information that the Applebot Web Crawler has indexed for the site such as title, description, URL and any other supported elements.

웹 마크업으로 작업 하는 방법에 대 한 자세한 내용은 웹 태그를 사용 하 여 검색 설명서를 참조 하세요.For more information on working with Web Markup, please see our Seach with Web Markup documentation.

메시지 앱 이미지 공유Message App Image Sharing

메시지 앱 확장에서 메시지 공유를 위한 이미지를 제공 하는 경우 사용자가 앱을 떠나지 않고도 메시지 내에서 인기 있는 이미지에 대 한 스포트라이트 검색을 수행할 수 있도록 확장을 구성할 수 있습니다.If a Message App Extension provides images for sharing in Messages, the extension can be configured to allow the user to perform Spotlight searches for popular images from within the Messages, without having to leave the app.

이 기능을 사용 하도록 설정 하려면 다음을 수행 합니다.To enable this feature, do the following:

  1. 메시지 앱 확장을 만듭니다.Create a Message App Extension.
  2. 앱의 자격에 com.apple.developer.associated-domains을 추가 하 고 메시지 앱 확장이 공유 하 고 있는 이미지를 호스트 하는 웹 도메인 목록을 포함 합니다.Add the com.apple.developer.associated-domains to the app's entitlements and include a list of web domains that host the images the Message App Extension is sharing. 각 도메인에 대해 spotlight-image-search 서비스를 지정 합니다.For each domain, specify the spotlight-image-search service.
  3. 이미지를 호스트 하는 웹 사이트에 apple-app-site-association 파일을 추가 합니다.Add a apple-app-site-association file to the website that is hosting the images. 이 파일에는 spotlight-image-search 서비스에 대 한 사전이 포함 되어 있으며, 앱 id 또는 앱 id 접두사와 번들 ID를 포함 하는 앱 id가 포함 되어 있습니다.This file includes a dictionary for the spotlight-image-search service and includes the app's ID, which is the Team ID or App ID prefix followed by the Bundle ID. 이 파일에는 스포트라이트로 인덱싱되는 인기 있는 이미지 검색에 포함 되는 최대 500의 경로 및 패턴이 포함 될 수 있습니다.The file can contain up to 500 paths and patterns that will be indexed by Spotlight and included in popular image searches. 자세한 내용은 Apple의 연결 파일 만들기 및 업로드 설명서를 참조 하세요.For more information, please see Apple's Creating and Uploading the Association File documentation.
  4. 웹 사이트를 탐색 하는 데 사용할 수 있습니다.Allow the Applebot to crawl the websites. Apple의 사과 Ebot 설명서를 참조 하세요.Please see Apple's About Applebot documentation.

자세한 내용은 메시지 앱 통합 설명서를 참조 하세요.See our Message App Integration documentation for more details.

요약Summary

이 문서에서는 iOS 10의 앱 검색에 대 한 Apple의 향상 된 기능과 Xamarin.ios에서 앱을 구현 하는 방법에 대해 설명 했습니다.This article has covered the enhancements Apple has made to App Search in iOS 10 and how to implement them in Xamarin.iOS.