Giriş Giriş Giriş

Modern mobil kullanıcılar, uygulamanızı ilk açmadan veya uygulamanızın indekslenmiş öğelerin sonuçları ile Mail, Mesajlar ve diğer sistem uygulamaları ile birlikte ortaya çıkmasını sağlamak için otomatik olarak sistem düzeyinde aramanızı bekler.Bu makale, Phone Spotlight'dan gelen bir kullanıcı aramalarını veya Arama görüşünüzü açmadan elde etmek için kapsamlı ve hazırlayıcı bir kılavuz sunar.

Core Spotlight ve Faydaları

Core Spotlight hafif, gizlilik dostu bir indeksleme sistemidir. Tamamen takip ediyor - hiçbir veri BulutKit'i açıkça kullanmadığınız sürece kullanıcının telefonunu terk etmiyor. Bu, notlar, kontaklar, belgeler veya herhangi bir kullanıcı tarafından üretilen veriler gibi kişisel içerik için ideal kılar.

  • [FONT:0)İncreased nişan) - Kullanıcılar unutulabilecekleri içerik keşfederler, tekrar kullanımları güçlendirebilirler.
  • [FONT:0]Seamless navigasyon[[[Dönemli:0)[Dönetici:0)[Dönetici:0)Denizsiz navigasyon[[[Dönemli bir arama sonucu dokunur - Bir arama sonucu doğrudan ilgili ekrana açabilir.
  • [FONT:0)Resulüm kapasitesi) - Indexed öğeler internet bağlantısı olmadan bile aramalanabilir.
  • [FONT:0) Düşük uygulama maliyeti[DÜT:1) - API küçük, iyi niyetli ve mevcut veri modelleriyle kolayca entegre edilir.

Core Spotlight, 0:0)NSUserActivity[Dönetici:0) indexleme, ancak statik veya sık güncel içerik için, doğrudan CSArazit Item indeksleme size iyi bir kontrol verir.

Önlemler ve Kurulum

Kod yazmadan önce, projenizin doğru yapılandırılmasını sağlayın:

  1. Uygulamanız hedef olmalıdır:0)iOS 9 veya daha sonra ) ( iOS 9 ile API çıktı).
  2. EnableFLT:0)Core Spotlight[[Dönetici: 1 ) Xcode'da kapasiteye sahip olmak – underurFLT:2)Signing & Cap tasks) “Core Spotlight” ünvanını eklemek. Bu genellikle çerçeveyi ithal ederken otomatik olarak dahil edilir.
  3. Core Spotlight framework ve MobileCoreHizmetleri ( tipi tanımlayıcılar için): [[ENGT:0) ve ).

Ek sunucu yapılandırması veya kullanıcı izni gerekli değildir. Indexing arka planda bir şekilde birsenkür olur.

Oluşturun ve Indexing Searchable Materials

Core Spotlight'ın özü, [[Dönetici:2) nesnedir.Her bir öğeden oluşur:

  • AAHRAT:0)unique tanımlayıcı[[Dönetici: 1 ) (e.g., [[Dönetici: 4)) - seçim veya güncellemeleri ele almak için daha sonra kullanılır.
  • Seçmeli bir kalite:0) domain tanımlayıcı[[Dönetici: 1 ) - ilgili öğeler (örneğin, [[Düzg., [[)
  • AFFT:0)tribute set[[Dönetici: · 1/01/5); [[DüzgÜye ait olan içerik, [[Üye/Üye/Üye/Üye/Üye/Üye/Üye/Üye/Üye/Üye/Üye/Üye/Üye/Üye/Üye/Üye/Üye/Üye/Üye/Üye/Üye/Üye/Üye/Üye/Üye/Üye/Üye/Üye/Üye/Üye/Üye/Üye/Üye/Üye/Üye/Üye/Üye)

İşte tek bir not indeksleyen tam bir Swift örneği:

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.")
 }
 }
}

Attribute Set Özellikler

[[TheD: 16) {FONT12'den devralın ve aşağıdaki uygulamalar için onlarca özellik sunar:

  • [Üye Olmayanlar İçin Tıklayınız.
  • [Üye: 14) - Başlık altında gösterilen daha uzun bir parça.
  • [FONT: 16) - Alternatif arama terimleri için alternatif arama terimleri için [[FEND:16|
  • [03.38] veya [[Döntilmiş: 18) - Görsel önizleme.
  • [FONT=FONT=FONT=FONT=FONT=FONT=FONT=FONT=FONT=FONT=FONT=FONT=FONT=FONT=FONT=FONT=FONT=FONT=FONT=FONT=FONT=FONT=FONT=FONT=FONT=FONT=FONT=FONT=FONT=FONT=FONT=FONT=FONT=FONT=FONT=FONT=FONT=FONT=FONT=FONT=FONT=FONT=FONT=FONT=FONT=FONT=FONT=FONT=FONT=)

Medya içeriği için, [[Ücretsizler gibi özel özellikler kullanın.) veya [[FONTD:2|

Updating and Deleting Indexed Content

Uygulamanızın içerik değişiklikleri olduğunda, indeksi senkronize etmeniz gerekir. Aynı şekilde kullanın: ”

Bir Bir Ödevünü Bir

CallFLT:24 Aynı eşsiz tanımlayıcı ile birlikte – API otomatik olarak eski giriş yerini alır.

Maddeleri

[[Katılım:) veya [[Dint-i sûresi:

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

Batch işlemleri verimlidir: tam bir sıfırlama için, kullanım kolaylığı için (yaklaşık gerekli).

Kullanıcı Aktivitesi ve Derin Linking

Bir kullanıcı bir Spotlight sonucu dokunduğunda, uygulamanız devam eden [[Dönetici yöntemi uygulamanız gerekir.Gerekli delege yönteminizi uygulamanız gerekir.

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
}

Geri kalanı

Bir özleyici deneyim için, aynı zamanda yükleme durumunu göstermek için de geçerlidir. Sahneye dayalı uygulamalar (iOS 13+), [[ŞeFLT:36) yöntemi kullanır.

NSUserActivity ile Derin Linking

Core Spotlight ayrıca, [[ŞUYGÜNÜŞÜNÜŞÜNÜŞÜNÜŞÜNÜŞÜNÜŞÜNÜŞÜNÜŞÜNÜŞÜNÜŞÜNÜŞÜNÜŞÜNÜŞÜNÜŞÜNÜŞÜNÜŞÜNÜŞÜNÜŞÜNÜŞÜNÜŞÜNÜŞÜNÜŞÜNÜŞÜNÜŞÜNÜŞÜNÜŞÜNÜŞÜNÜŞÜNÜŞÜNÜŞÜNÜŞÜNÜŞÜNÜŞÜNÜŞÜNÜŞÜNÜŞÜNÜŞÜNÜŞÜNÜŞÜNÜŞÜNÜŞÜNÜŞÜNÜŞÜNÜŞÜNÜŞÜNÜŞÜNÜŞÜNÜŞÜNÜŞÜNÜŞÜNÜŞÜNÜŞÜNÜŞÜNÜŞÜNÜŞÜNÜŞÜNÜŞÜNÜŞÜNÜŞÜNÜŞÜNÜŞÜNÜŞÜNÜŞÜNÜŞÜNÜŞÜNÜŞÜNÜŞÜNÜŞÜNÜŞÜNÜŞÜNÜŞÜNÜŞÜNÜŞÜNÜŞÜNÜŞÜNÜŞÜNÜŞÜNÜŞÜNÜŞÜNÜŞÜNÜŞÜNÜŞÜN

Etkili Indexing için En İyi Uygulamalar

Bu kılavuzların ardından indekslenen içerikiniz ilgili ve performansa devam eder:

1. Index Only Anlamlı İçerik

Her küçük veri parçası indekslemeyin. Ürünlere odaklanın kullanıcılar arama olasılığı yüksektir: son belgeler, yüksek değerli sayfalar veya alıntılanan içerik.

2. Set Proper Expiration Dates

Varsayılan olarak, öğeler bir ay sonra sona erer. statik içerik için, ayarlandığında GÜNÜŞÜNÜŞÜNÜŞÜNÜŞÜNÜ (örneğin, olay hatırlatıcıları), gerçekçi bir tarih kullanın.

3. Domain Identifiers Wisely

Domain tanımlayıcıları, bir gruptan bir kez tüm öğeleri bir kez silebilmenize izin verir. Örneğin, bir kullanıcı bir klasörü silse, callETHFLT:43).

4. Anlamlı Anahtar Kelimeleri Sağlamak

Eş anlamlılar, ortak özlegeler ve alternatif isimler ekleyin. Fazladan kaçının; 5-10 iyichosen anahtar kelimeler yeterlidir.

5. İçerikleri Çözmekten Kaçınmak

Eğer eşyaları tekrarlarsanız (örneğin, aynı başlık farklı alanlarda), kullanıcılar kafa karıştırıcı sonuçlar görürler. Uygulama seviyesinde de karmaşıklaşırlar.

6. Batch Operations for Bulk Updates

Birçok öğeyi senkronize etmek (örneğin, bulut geri yüklemeden sonra), ana konuyu engellemek için 50-100 serisine oy verin.UseENFLT:44) bir dizi ile, birden fazla arama yapmamak.

Performans ve Pil Tahminleri

Core Spotlight düşük öncelikli bir arka plan süreci yürütüyor. Ancak zayıf uygulama batarya veya degrad sistemi performansını azaltabilir:

  • [[DÜDÜ:0)Limit tekrar frekans[[[DÜT:1) - Veriler aslında değiştiğinde, her uygulama başlatılmadı.
  • [FONT:0]Büyük operasyonların [[Dönetici: 1 ) – UseurFLT:45) ve [[FONTD: 9) atom güncelleştirmeleri için kullanılabilir.
  • [FONT:0] ağır görüntülerden yoksundur [Döntgen: 1))) - [[DüzgÜSÜSÜŞÜNÜŞÜNÜŞÜNÜŞÜNÜŞÜNÜŞÜNÜŞÜNÜŞÜNÜŞÜNÜŞÜNÜŞÜNÜye Olmayanlar (örneğin, 64×64 puan, JPEG sıkıştırılır).
  • [FONT=0) varsayılan indeksi kullanın [[Dönetici:0) – [[FONTT:49) neredeyse tüm uygulamalar için yeterlidir. Özel indeksler oluşturmak nadiren gereklidir.

Apple'ın Spotlight Belgeleri[DÜT:1) endekslemenin “ateş ve unut” olarak değerlendirilmesi gerektiğini vurgulamaktadır - ana konuyla ilgili çağrıları tamamlamak için senkronize etmeyi beklemeyin.

Test Core Spotlight Entegrasyonu

Bu çalışma stratejisini takip etmek için Spotlight sonuçları zor olabilir çünkü bu test stratejisini takip edebilirler:

  1. [FONT=0]Simulator testi[Dönetici: 1 ) – iOS Simulator (iOS 15 veya daha sonra) indexlemeden sonra, arama için Home ekranından aşağıya inin.Reception that results may take more in Simulator.
  2. [FONT:0]Device testleri[[[Dönetici: 1) - Her zaman fiziksel bir cihaz üzerinde test edin. Spotlight indeksleme gerçek donanımda daha agresif davranır.
  3. [FONT=0]Reset the index[[[Döneticileri kullanın: Genel → Spotlight Arama → Uygulamanızı kapat ve devam etmek için. Bu, indeks ve güçleri taze bir başlangıç olarak açıklayın.
  4. [FONT=0)Verify deletion[[Dönetici: 1 ) – Bir öğeyi kırdıktan sonra, eski sonucun artık görünmeyeceğini garanti eder. Bazen sistem önbellek sonuçları; 30 saniyeye kadar verin.
  5. [FONT=0) Debug konsolu kontrol edin - EnableENFLT:50, Xcode'un program tartışmalarında geçer.

Yararlı bir kaynak:0)WWWDC 2015 “In introduce Core Spotlight”[Döneticileri tanıtıyor, bu da temel kavramları bugün hala uygulanabilir.

Sonuç Sonuç Sonuç Sonuç Sonuç Sonuç Sonuç Sonuç

Core Spotlight API, kullanıcıların uygulamanızla nasıl etkileşime girebileceğine dair sağlam bir araçtır. İlgili olarak, güncel içeriği sisteme sürekli olarak kullanmayı ve kullanıcı aktivite çağrılarını bu makalede belirtilen adımlarla birlikte, ilk önce küçük bir indeksleme deneyiminizi sağlamak için özgün tanımlayıcıları kullanın. iOS.

Daha fazla okuma için resmi olarak [[FONT:0)Core Spotlight Çerçeve Referansı[Dönetici:2) ve [[Döneticileri Arama Programlama Kılavuzu[Dönetici 3 ).