Aracılığıyla paylaş


Xamarin.iOS'ta Çekirdek Öne Çıkanlar ile arama

Core Spotlight, iOS 9 için uygulamanızdaki içeriğe bağlantı eklemek, düzenlemek veya silmek için veritabanı benzeri bir API sunan yeni bir çerçevedir. Çekirdek Öne Çıkanlar kullanılarak eklenen öğeler iOS cihazında Spotlight aramasında kullanılabilir.

Çekirdek Spot kullanılarak dizine alınabilecek içerik türlerine bir örnek için Apple'ın İletiler, Posta, Takvim ve Notlar uygulamalarına bakın. Hepsi şu anda arama sonuçları sağlamak için Çekirdek Öne Çıkanlar'ı kullanıyor.

Öğe Oluşturma

Aşağıda, Çekirdek Spot kullanarak öğe oluşturma ve dizin oluşturma örneği verilmiştir:

using CoreSpotlight;
...

// Create attributes to describe an item
var attributes = new CSSearchableItemAttributeSet();
attributes.Title = "App Center Test";
attributes.ContentDescription = "Automatically test your app on 1,000 devices in the cloud.";

// Create item
var item = new CSSearchableItem ("1", "products", attributes);

// Index item
CSSearchableIndex.DefaultSearchableIndex.Index (new CSSearchableItem[]{ item }, (error) => {
    // Successful?
    if (error !=null) {
        Console.WriteLine(error.LocalizedDescription);
    }
});

Bu bilgiler arama sonucunda aşağıdaki gibi görünür:

Çekirdek Spot arama sonucuna genel bakış

Öğeyi Geri Yükleme

Kullanıcı, uygulamanız için Çekirdek Spot aracılığıyla Arama sonucuna eklenen bir öğeye dokunduğunda AppDelegate , yöntemi ContinueUserActivity çağrılır (bu yöntem için NSUserActivityde kullanılır). Örneğin:

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 == CSSearchableItem.ActionType.ToString ()) {
            // Display content for searchable item...
        }
        break;
    }

    return true;
}

Bu kez bir olan etkinliği ActivityTypeCSSearchableItem.ActionTypedenetlediğimize dikkat edin.

Öğeyi Güncelleştirme

Çekirdek Spot ile oluşturduğumuz bir Dizin Öğesinin değiştirilmesi gereken zamanlar olabilir; örneğin başlıkta veya küçük resim görüntüsünde değişiklik yapılması gerekebilir. Bu değişikliği yapmak için, başlangıçta dizini oluşturmak için kullanılan yöntemle aynı yöntemi kullanırız. Öğeyi oluşturmak ve değiştirilen öznitelikleri içeren yeni bir ekleme yapmak için kullanılan kimlikle aynı kimliği kullanarak yeni CSSearchableItemAttributeSet bir yeni oluştururuzCSSearchableItem:

Öğeyi güncelleştirmeye genel bakış

Bu öğe aranabilir dizine yazıldığında, mevcut öğe yeni bilgilerle güncelleştirilir.

Öğe Silme

Çekirdek Spot artık gerekli olmadığında bir dizin öğesini silmek için birden çok yol sağlar.

İlk olarak, bir öğeyi tanımlayıcısına göre silebilirsiniz, örneğin:

// Delete Items by ID
CSSearchableIndex.DefaultSearchableIndex.Delete(new string[]{"1","16"},(error) => {
    // Successful?
    if (error !=null) {
        Console.WriteLine(error.LocalizedDescription);
    }
});

Ardından, bir grup dizin öğesini etki alanı adına göre silebilirsiniz. Örneğin:

// Delete by Domain Name
CSSearchableIndex.DefaultSearchableIndex.DeleteWithDomain(new string[]{"domain-name"},(error) => {
    // Successful?
    if (error !=null) {
        Console.WriteLine(error.LocalizedDescription);
    }
});

Son olarak, aşağıdaki kodla tüm Dizin Öğelerini silebilirsiniz:

// Delete all index items
CSSearchableIndex.DefaultSearchableIndex.DeleteAll((error) => {
    // Successful?
    if (error !=null) {
        Console.WriteLine(error.LocalizedDescription);
    }
});

Ek Temel Öne Çıkan Özellikler

Çekirdek Spot, dizini doğru ve güncel tutmaya yardımcı olan aşağıdaki özelliklere sahiptir:

  • Batch Update Desteği – Uygulamanızın aynı anda büyük bir dizin grubu oluşturması veya değiştirmesi gerekiyorsa, toplu işlemin tamamı tek bir çağrıda sınıfın CSSearchableIndex yöntemine Index gönderilebilir.
  • Dizin Değişikliklerini Yanıtlama – Uygulamanızı kullanmak CSSearchableIndexDelegate , aranabilir dizindeki değişikliklere ve bildirimlere yanıt verebilir.
  • Veri Koruması Uygulama – Veri koruma sınıflarını kullanarak, Core Spotlight kullanarak aranabilir dizine eklediğiniz öğeler üzerinde güvenlik uygulayabilirsiniz.