こんにちは、Habr!
Yandexは最近、モバイルアプリを台無しにして、その言葉が間違っている場合は「スーパーアプリ」に変えるのに苦労しています。そして、この発展の方向性が最も目立つ会社の2つのアプリケーションの1つはタクシーです。
少し前に、それは「Yandex Go」と改名され、同時に食品、ショップ、公共交通機関、たくさんの広告の中に押し込まれました。そして、ここで私は、戦争を宣言することなく、このマイクロ記事を書くためのアイデアとして最終的に役立つ問題に不法に遭遇しました。
私のiPhoneにはかなりの数の異なるアプリケーションがあり、Spotlightシステム検索の最初のページにないアプリケーション(iOSのホーム画面にあるアプリケーション)を起動することに慣れています。問題は、前述のYandexアプリケーションの名前変更により、メインキーワード「taxi」がその名前から消えたことです。 YandexGoがそれを使用しているのを見つけることができなくなりました。これが起動統計やアプリの収益にどの程度影響したかを推測するのは難しいですが、少なくともUXは間違いなく敗者であり、かなり愚かでした。ちなみに、同じように「マキシム」というキーワードでタクシー「マキシム」を見つけることはできず、「フード」というクエリでデリバリークラブを検索することもできません。
同時に、問題を簡単に分析すると、「VK」アプリケーションは通常クエリ「VKontakte」によって検出され、iOSは「tinkoff」を入力すると「Investments」を起動するように提案し、Okkoはキーワード「movie」、「eye」、および「アイビー」ですら。どのようにしてこれを達成しましたか?実際、非常に単純です...
すでにハンドオフ、つまり、異なるAppleデバイス間でのシームレスなユーザー切り替えまたはSiriショートカットをサポートしている場合、Spotlightキーワードは簡単に追加できます。すでに作業してkeywords
いるオブジェクトのプロパティを設定する必要NSUserActivity
があります。
let activity = NSUserActivity(activityType: typeID)
activity.keywords = ["", " "]
何らかの理由で、HandoffとSiriを使用していない場合、またはSpotlightをより深刻なレベルでサポートしたい場合は、それを使用してくださいCoreSpotlight
。
import CoreSpotlight
let attributes = CSSearchableItemAttributeSet(contentType: .application)
attributes.title = " "
attributes.contentDescription = " "
attributes.thumbnailData = image.pngData()
attributes.keywords = ["", "", ""]
let searchableItem = CSSearchableItem(uniqueIdentifier: "pizza", domainIdentifier: "readyMeal", attributeSet: attributes)
CSSearchableIndex.default().indexSearchableItems([searchableItem]) { _ -> Void in }
, ...
, iOS, , , .
, , , , . , , Spotlight, .
!