Johdanto

Modernit mobiilikäyttäjät odottavat välitöntä pääsyä tietoihin. Järjestelmän tason haku iOS-sovellukseen vähentää kitkaa huomattavasti, jolloin käyttäjät löytävät sisältöä avaamatta sovellusta ensin. [[]Core Spotlight API[[]] on Apple.S-sovellus on sisäänrakennettu sovelluksen sisällön indeksoimiseksi laitteeseen. Tämä artikkeli tarjoaa kattavan, tuotantovalmis opas Core Spotlight -haun toteuttamiseen. Kun käyttäjä etsii sisältöä kotinäytöltä tai hakunäkymästä, sovelluksesi on liitetty Mail-, Viesti- ja muiden järjestelmäsovellusten tuloksiin. Tämä artikkeli tarjoaa kattavan, tuotanto- ja käyttöoppaan, joka kattaa kaiken perusindeksistä syvään linkittämiseen ja suorituskykyyn.

Ymmärtäminen ydin Spotlight ja sen edut

Core Spotlight on kevyt, yksityisyyttä säästävä indeksointijärjestelmä. Se elää täysin laitteella . Mikään data ei poistu käyttäjältä puhelimesta, ellet nimenomaisesti käytä CloudKitin käyttöä. Tämä tekee siitä ihanteellisen henkilökohtaiselle sisällölle, kuten muistiinpanoille, kontakteille, asiakirjoille tai käyttäjälle tuotetuille tiedoille.

  • Kiinnostavuuden lisääntyminen[ . Käyttäjät löytävät sisältöä, jonka he ovat saattaneet unohtaa, mikä lisää toistuvaa käyttöä.
  • Seamless navigation[ ... Hakutuloksen tallentaminen voi avata sovelluksesi suoraan asianomaiselle näytölle.
  • Offline-ominaisuus .
  • Hitot toteutuskustannukset[ . ... API on pieni, hyvin dokumentoitu ja se integroidaan helposti olemassa oleviin tietomalleihin.

Core Spotlight toimii rinnan [NSUserActivity indeksoinnin kanssa, mutta staattisen tai usein päivitetyn sisällön osalta suora CSSearchableItem-indeksi antaa sinulle paremman kontrollin.

Edeltävät opinnot ja asetukset

Ennen koodin kirjoittamista varmista, että projektisi on oikein määritetty:

  1. Sovelluksen on kohdistuttava iOS 9:ään tai uudempaan (iOS 9:llä debytoitu API-sovellus).
  2. Käytä Core Spotlight -ominaisuutta Xcode ... Alla Merkintä ja kyvyt[ lisää ...
  3. Tuo Core Spotlight -kehys ja MobileCoreServices (tyyppitunnisteiden osalta): ja .

Palvelinten lisäasetuksia tai käyttölupia ei tarvita. Indeksoiminen tapahtuu synkronoidusti taustalla.

Haettavissa olevien tuotteiden luominen ja indeksointi

Ydin Spotlightin ydin on objekti. Jokainen kohde koostuu:

  • A yksilöllinen tunniste (esim. ) .
  • Valinnainen domain identifier .
  • attribuuttisetit[ (]) .

Tässä on täydellinen Swift esimerkki, joka indeksit yhden huomautuksen:

import CoreSpotlight
import MobileCoreServices

func indexNote(note: Note) {
 let attributeSet = CSSearchableItemAttributeSet(itemContentType: kUTTypeText as String)
 attributeSet.title = note.title
 attributeSet.contentDescription = note.body
 attributeSet.keywords = [note.title] + note.tags
 if let imageData = note.thumbnail?.pngData() {
 attributeSet.thumbnailData = imageData
 }

 let item = CSSearchableItem(
 uniqueIdentifier: "com.yourapp.note.\(note.id)",
 domainIdentifier: "com.yourapp.notes",
 attributeSet: attributeSet
 )
 // Optionally set expiration date (default is one month)
 // item.expirationDate = Date.distantFuture

 CSSearchableIndex.default().indexSearchableItems([item]) { error in
 if let error = error {
 print("Indexing error: \(error.localizedDescription)")
 } else {
 print("Note indexed successfully.")
 }
 }
}

Attribuutin asetukset

perii ja tarjoaa kymmeniä ominaisuuksia. Useimmille sovelluksille ovat olennaisia:

  • ] ... Lyhyt, kuvaileva teksti, joka näyttää näkyvästi.
  • ] .......................................................................................................................................................................................................................................................
  • ] .......................................................................................................................................................................................................................................................
  • tai ] .
  • ] ... ...................................................................................................................................................................................................................................................

Jos kyseessä on instrumenttisisältö, käytetään tyyppikohtaisia ominaisuuksia, kuten , tai .

Päivitetään ja poistetaan indeksiin merkittyä sisältöä

Kun sovellus muuttuu, sinun on pidettävä indeksi synkronoituna. Käytä samoja menetelmiä:

Kohteen päivittäminen

Soita samalla yksilöllisellä tunnisteella .

Poistaminen kohteista

Käytetään tai litkua:

CSSearchableIndex.default().deleteSearchableItems(withIdentifiers: ["com.yourapp.note.123"]) { error in
 // handle
}

Erän toiminnot ovat tehokkaita: passitusjärjestelmät osoitteeseen tai . Täysi nollaus, käyttö (harvinaisesti tarpeen).

Käyttäjän toiminnan ja syvän linkittämisen käsittely

Kun käyttäjä napauttaa Spotlight-tulosta, sovellus saa puhelun -jatkon kautta. Toteuta seuraava valtuutettu menetelmä tai :

func application(_ application: UIApplication,
 continue userActivity: NSUserActivity,
 restorationHandler: @escaping ([UIUserActivityRestoring]?) -> Void) -> Bool {

 if userActivity.activityType == CSSearchableItemActionType {
 if let userInfo = userActivity.userInfo,
 let identifier = userInfo[CSSearchableItemActivityIdentifier] as? String {
 // Navigate to the item with this identifier
 navigateToContent(identifier: identifier)
 return true
 }
 }
 return false
}

Palauttamisvaltio

Sileämmän kokemuksen saamiseksi on myös otettava käyttöön .

Syvä yhteys NSUserActivity-järjestelmään

Core Spotlight toimii myös -mekanismin kanssa. Jos jo indeksaat toimintoja kautta, voit lisätä -lipun. Käytä kuitenkin suoraan -tunnusta, jos haluat valvoa hienoksi nimeksi merkittyjä nimikkeitä ja kuvauksia.

Tehokasta indeksointia koskevat parhaat käytännöt

Näiden ohjeiden mukaisesti varmistetaan, että indeksoitu sisältö pysyy relevanttina ja suorituksena:

1. Hakemisto Vain merkityksekäs sisältö

Don t indeksoi jokaisen pienen tiedon. Keskittyminen kohteisiin käyttäjät todennäköisesti etsivät: tuoreita asiakirjoja, korkean arvon sivuja, tai kirjanmerkitty sisältö.

2. Aseta oikeat päättymispäivät

Oletuksena on, että kappaleet vanhenevat kuukauden kuluttua. Staattisen sisällön osalta aseta . Aikaherkkä tieto (esim. tapahtumamuistutukset), käytä realistista päivämäärää.

3. Käytä verkkotunnusta viisaasti

Verkkotunnukset mahdollistavat kaikkien kohteiden poistamisen ryhmästä kerralla. Jos käyttäjä esimerkiksi poistaa kansion, soita .

4. Tarjoa merkityksekkäitä avainsanoja

Sisällytä synonyymit, yhteiset väärinkäytöt ja vaihtoehtoiset nimet. Vältä ylittymistä; 5.10. Valitut avainsanat riittävät.

5. Vältä indeksointia Kaksinkertainen sisältö

Jos toistat kohteita (esim. saman otsikon eri aloilla), käyttäjät näkevät hämmentäviä tuloksia.

6. Erän toiminnot irtotavarapäivityksiä

Kun synkronoit monia kohteita (esim. pilven palautumisen jälkeen), laita ne 50.100:n rakenteisiin, jotta päälanka ei estyisi. Käytä -järjestelmää, ei useita yksittäisiä puheluita.

Suorituskykyä ja paristoa koskevat näkökohdat

Core Spotlight -järjestelmä toimii huonosti, mutta huono käyttöönotto voi tyhjentää akun tai heikentää järjestelmän suorituskykyä:

  • Limit reindexing frekvenssi[ ... Vain uudelleenindexissä, kun tiedot todella muuttuvat, ei joka sovelluksen lanseerauksessa.
  • Throttle large operations .
  • Vältä raskaita kuvia[] [] olisi oltava pieni (esim., 64×64 pistettä, JPEG pakattu). Suuret kuvat lisäävät muistinpainetta.
  • Käytä oletusindeksiä[ . riittää lähes kaikille sovelluksille. Oman indeksin luominen on harvoin tarpeen.

Apples Core Spotlight dokumentaatio korostaa, että indeksointi olisi käsiteltävä .fire ja unohtaa... ... ..ei synkronoidusti odota päälangan soittoa.

Testaus Core Spotlight Integration

Vianetsintä Spotlight tulokset voivat olla hankalia, koska ne eivät aina ilmesty heti. Seuraa tätä testausstrategiaa:

  1. Simulaattori testaus[ . Käytä iOS Simulator (iOS 15 tai uudempi). Kun indeksointi, odota muutama sekunti, sitten vedä alas Kotinäyttöä etsiä. Huomaa, että tulokset voivat kestää kauemmin Simulator.
  2. Laitteistotestaus[ . Aina testata fyysisellä laitteella. Spotlight indeksointi käyttäytyy aggressiivisemmin oikealla laitteistolla.
  3. Reset the index[ . ... Käytä Asetukset-sovellusta: General → Spotlight Search → toggle your app off and on. Tämä tyhjentää indeksin ja pakottaa uuden alun.
  4. Varmista poisto[ . Kun olet poistanut kohteen, varmista, että vanha tulos ei enää näy. Joskus järjestelmä välimuistit tulokset; anna se jopa 30 sekuntia.
  5. Tarkista debug-konsoli[] . Ota käyttöön kirjautuminen ohittamalla Xcode.s-järjestelmän argumentit.

Hyödyllinen resurssi on WWDC 2015 ...Esittely Core Spotlight., joka kattaa peruskäsitteet, joita vielä nykyäänkin sovelletaan.

Päätelmät

Core Spotlight API on vankka, alikäytetty työkalu, joka voi muuttaa käyttäjien vuorovaikutusta sovelluksesi kanssa. Lisäämällä relevanttia, ajan tasalla olevaa sisältöä järjestelmään .Sinun hakuindeksisi, tarjoat kitkattoman polun etsinnästä sisältöön . Aloita pieni: indeksoi tärkein sisältösi ensin, testaa huolellisesti ja sitten laajenna sivuesineitä. Muista käyttää ainutlaatuisia tunnisteita johdonmukaisesti ja käsittele käyttäjän aktiivisuussoittoa armollisesti. Tässä artikkelissa kuvatuilla askelilla olet valmis toimittamaan ensimmäisen luokan hakukokemuksen, joka tuntuu iOS:lle natiivilta.

Lisätietoja saa viranomaiselta .Korkea Spotlight Framework Reference ja .Lisätietoja haku-ohjelmaoppaasta.