Bagikan melalui


Cari dengan Core Spotlight di Xamarin.iOS

Core Spotlight adalah kerangka kerja baru untuk iOS 9 yang menyajikan API seperti database untuk menambahkan, mengedit, atau menghapus tautan ke konten dalam aplikasi Anda. Item yang telah ditambahkan menggunakan Core Spotlight akan tersedia dalam pencarian Spotlight di perangkat iOS.

Untuk contoh jenis konten yang dapat diindeks menggunakan Core Spotlight, lihat app Pesan, Email, Kalender, dan Catatan Apple. Mereka semua saat ini menggunakan Core Spotlight untuk memberikan hasil pencarian.

Membuat Item

Berikut ini adalah contoh membuat item dan mengindeksnya menggunakan Core Spotlight:

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);
    }
});

Informasi ini akan muncul seperti berikut ini dalam hasil pencarian:

Gambaran umum hasil pencarian Core Spotlight

Memulihkan Item

Saat pengguna mengetuk item yang ditambahkan ke hasil Pencarian melalui Core Spotlight untuk aplikasi Anda, AppDelegate metode ContinueUserActivity ini dipanggil (metode ini juga digunakan untuk NSUserActivity). Contohnya:

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;
}

Perhatikan bahwa kali ini kami memeriksa aktivitas yang memiliki ActivityType dari CSSearchableItem.ActionType.

Memperbarui Item

Mungkin ada kalanya Item Indeks yang kami buat dengan Core Spotlight perlu dimodifikasi, seperti perubahan judul atau gambar mini diperlukan. Untuk membuat perubahan ini, kita menggunakan metode yang sama seperti yang digunakan untuk membuat indeks pada awalnya. Kami membuat baru CSSearchableItem menggunakan ID yang sama seperti yang digunakan untuk membuat item dan melampirkan baru yang CSSearchableItemAttributeSet berisi atribut yang dimodifikasi:

Memperbarui gambaran umum Item

Ketika item ini ditulis ke indeks yang dapat dicari, item yang ada diperbarui dengan informasi baru.

Menghapus Item

Core Spotlight menyediakan beberapa cara untuk menghapus item indeks saat tidak lagi diperlukan.

Pertama, Anda dapat menghapus item berdasarkan pengidentifikasinya, misalnya:

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

Selanjutnya, Anda dapat menghapus sekelompok item indeks berdasarkan nama domainnya. Contohnya:

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

Terakhir, Anda dapat menghapus semua Item Indeks dengan kode berikut:

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

Fitur Sorotan Inti Tambahan

Core Spotlight memiliki fitur berikut yang membantu menjaga indeks tetap akurat dan terbaru:

  • Dukungan Pembaruan Batch – Jika aplikasi Anda perlu membuat atau memodifikasi sekelompok besar indeks secara bersamaan, seluruh batch dapat dikirim ke Index metode CSSearchableIndex kelas dalam satu panggilan.
  • Merespons Perubahan Indeks – Menggunakan CSSearchableIndexDelegate aplikasi Anda dapat merespons perubahan dan pemberitahuan dari indeks yang dapat dicari.
  • Terapkan Perlindungan Data – Menggunakan kelas perlindungan data, Anda dapat menerapkan keamanan pada item yang Anda tambahkan ke indeks yang dapat dicari menggunakan Core Spotlight.