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:
Öğ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 NSUserActivity
de 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 ActivityType
CSSearchableItem.ActionType
denetlediğ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
:
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öntemineIndex
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.