Hallo Habr!
Yandex hat in letzter Zeit Probleme damit, seine mobilen Apps zu vermasseln und sie in "Superapp" zu verwandeln, wenn dieses Wort falsch ist. Und eine der beiden Anwendungen des Unternehmens, für die diese Entwicklungsrichtung am deutlichsten erkennbar ist, ist das Taxi.
Vor nicht allzu langer Zeit wurde es in "Yandex Go" umbenannt und gleichzeitig in Food, Shop, öffentliche Verkehrsmittel und eine Menge Werbung hineingeschoben. Und hier bin ich tückisch, ohne den Krieg zu erklären, auf ein Problem gestoßen, das letztendlich als Idee für das Schreiben dieses Mikroartikels diente.
Ich habe einige verschiedene Anwendungen auf meinem iPhone und bin es gewohnt, diejenigen, die nicht auf der ersten Seite sind, über die Spotlight-Systemsuche zu starten - die auf dem iOS-Startbildschirm. Das Problem ist, dass mit der oben genannten Umbenennung der Yandex-Anwendung das Hauptschlüsselwort „Taxi“ aus seinem Namen verschwunden ist. Es ist jetzt unmöglich geworden, Yandex Go damit zu finden. Es ist schwer zu erraten, wie sehr sich dies auf die Startstatistik oder die Einnahmen der App ausgewirkt haben könnte, aber zumindest war die UX definitiv ein Verlierer und ziemlich dumm. Auf die gleiche Weise können Sie übrigens kein Taxi "Maxim" mit dem Schlüsselwort "maxim" finden, und Delivery Club wird von der Abfrage "food" nicht gesucht.
Gleichzeitig zeigt eine schnelle Analyse des Problems, dass die "VK" -Anwendung normalerweise von der Abfrage "VKontakte" erkannt wird, iOS anbietet, "Investments" zu starten, wenn Sie "tinkoff" eingeben, und Okko sehr passend für die Schlüsselwörter "movie", "eye" und "erscheint" sogar "ivie". Wie haben Sie das erreicht? In der Tat sehr einfach ...
Spotlight-Schlüsselwörter können problemlos hinzugefügt werden, wenn Sie Handoff bereits unterstützen, dh nahtlosen Benutzerwechsel zwischen Ihren verschiedenen Apple-Geräten oder Siri-Verknüpfungen. Sie müssen nur eine Eigenschaft keywords
für das Objekt festlegen, NSUserActivity
mit dem Sie bereits arbeiten.
let activity = NSUserActivity(activityType: typeID)
activity.keywords = ["", " "]
Wenn Sie mit Handoff und Siri aus irgendeinem Grund nicht unterwegs sind oder Spotlight auf einer ernsthafteren Ebene unterstützen möchten, verwenden Sie 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, .
!