Wyszukiwanie w aplikacji Windows 8 - Dodawanie wyszukiwania do aplikacji  Udostępnij na: Facebook

Tłumaczenie na podstawie Quickstart: Adding search to an app (Metro style apps using C#/VB/C++ and XAML): Aurelia Tokarek

Opublikowano: 2012-06-27

W tym odcinku dowiesz się, jak umożliwić użytkownikom przeszukiwanie zasobów Twojej aplikacji z dowolnego miejsca w systemie.

Wskazówka - Możesz używać skrótów klawiaturowych, aby uzyskać dostęp do przycisków systemowych (charms), zawierających przycisk wyszukiwania. Klawisz Logo Windows + C pozwala wyświetlić listę przycisków systemowych, a klawisz Logo Windows + Q wyświetla panel wyszukiwania.

Dodawanie wyszukiwania za pomocą narzędzi Visual Studio

Wszystkie aplikacje w stylu Modern UI mają dostęp do narzędzi w Microsoft Visual Studio Express 2012 RC dla Windows 8. Mogą zostać wykorzystane w celu dodania wyszukiwania do Twojej aplikacji i dostosowania się do wytycznych UX dla wyszukiwania. Zobacz Wytyczne i lista kontrolna wyszukiwania, aby dowiedzieć się więcej.

Dodaj szablon strony wyszukiwania

Otwórz projekt Twojej aplikacji w Visual Studio Express 2012 RC dla Windows 8 i wykonaj poniższe kroki, aby dodać wyszukiwanie do Twojej aplikacji za pomocą narzędzi:

  1. Otwórz okno Add a New Item.

Możesz otworzyć to okno kilkoma sposobami:

  • klikając menu opcji Project -> Add New Item,
  • klikając menu opcji z menu kontekstowego projektu Add -> New Item…,
  • używając skrótu klawiaturowego Ctrl + Shift +A.
  1. Na liście szablonów, umieszczonej w centralnej części okna, znajdź Search Contract i kliknij przycisk Add (możesz również wyszukać go w polu Search Installled Templates).
  2. Odpowiadając na pytanie o dodanie brakujących plików – wciśnij przycisk Yes.

Więcej na temat używania szablonów Microsoft Visual Studio możesz przeczytać w odcinku - Szablony projektów dla aplikacji Modern UI w C#, Visual Basic i C++.

Informacja

Narzędzia ułatwiają spełnienie minimalnych wymagań kontraktu wyszukiwania:

  • zadeklaruj kontrakt wyszukiwania w pliku Package.appxmanifest -

    możesz zobaczyć, że kontrakt został dodany poprzez kliknięcie na plik manifestu w Twoim projekcie Visual Studio i wybranie karty Declaration,
  • utwórz stronę wyników wyszukiwania podstawowego dla Twojej aplikacji -

    strona wyników wyszukiwania, która tworzona jest automatycznie w Visual Studio, przestrzega wytycznych UX dla strony wyników Wytyczne i lista kontrolna wyszukiwania,
  • Odpowiedz na zapytania wyszukiwania, gdy Twoja aplikacja jest główną aplikacją na ekranie -

    podczas wyszukiwania w Twojej aplikacji, gdy jest ona główną na ekranie, system wywołuje zdarzenie QuerySubmitted. Narzędzia Visual Studio (globalne) rejestrują obsługę, odpowiadającą za każdym razem, gdy zdarzenie jest wywoływane, a strona wyników jest wyświetlana dla zapytań użytkownika,
  • Odpowiedz na zapytania wyszukiwania, kiedy Twoja aplikacja nie jest główną aplikacją na ekranie -

    podczas wyszukiwania w Twojej aplikacji, gdy nie jest ona główną aplikacją na ekranie, system wywołuje zdarzenie Activated i przechowuje argumenty dla tego zdarzenia przy użyciu SearchActivatedEventArgs. Narzędzia Visual Studio dodają kod, zastępujący metodę OnSearchActivated. Twoja aplikacja może odpowiedzieć na to zdarzenie poprzez wyświetlenie strony wyników wyszukiwania dla zapytania użytkownika. Ten kod jest dodawany w pliku App.xaml.cs.

    Więcej o aktywowaniu Twojej aplikacji możesz przeczytać w How to activate an app.

Pełna integracja kontraktu wyszukiwania

Chociaż Visual Studio dodaje automatycznie podstawową stronę wyników wyszukiwania, spełniającą minimalne wymagania kontraktu wyszukiwania, potrzebujesz nadal następujących kroków, zapewniających kompletną integrację Twojej aplikacji oraz pozytywne doświadczenia podczas wyszukiwania dla użytkowników.

  1. Dodawanie filtrów do strony.

Filtry nie są domyślnie wyświetlane na stronie wyników wyszukiwania. Powinieneś dodać filtry, które mają sens dla Twojej aplikacji i jej użytkowników, poprzez dodanie kodu do metody LoadState. Metoda zawiera komentarze ułatwiające implementację.

  1. Wypełnij stronę wynikami z danych Twojej aplikacji.

Powinieneś dodać kod do metodyFilter_SelectionChanged w kodzie strony wyników wyszukiwania (domyślnie SearchResultsPage.xaml.cs), aby używać zapytania i bieżącego filtru do wypełnienia strony z wynikami. Możesz uzyskać dostęp do tekstu zapytania z obiektu DefaultViewModel. W tym obiekcie metoda LoadState domyślnie przechowuje tekst zapytania (w cudzysłowie). Metoda Filter_SelectionChanged zawiera komentarze ułatwiające implementację.

  1. Obsługa aktywacji dla pustych zapytań wyszukiwania.

Użytkownicy mogą często wybierać Twoją aplikację z panelu wyszukiwania bez wpisywania tekstu zapytania. Mogą to robić z dwóch powodów: albo chcą sprawdzić zawartość Twojej aplikacji, albo powrócić do niej do miejsca, w którym ostatnio ją używali. Twoja aplikacja powinna przewidywać potrzeby użytkownika i reagować odpowiednio na każdą z tych sytuacji.

Dodaj kod do Twojej aplikacji wyszukiwania, obsługujący aktywowane zdarzenie sprawdzające QueryText. Metoda obsługi została dodana automatycznie w Visual Studio. Użyj następującej, rekomendowanej logiki, pomagającej określić, które strony aplikacji są najlepiej wyświetlane, kiedy Twoja aplikacja jest aktywna, a QueryText jest pusty:

  • kiedy Twoja aplikacja jest uruchamiana po raz pierwszy, wyświetl stronę główną aplikacji,
  • jeśli Twoja aplikacja znajduje się w stanie wstrzymania (suspended) lub działa w tle, wyświetl bieżącą stronę w Twojej aplikacji,
  • w przeciwnym wypadku, wyświetl ogólną stronę wyszukiwania.
  1. Dodawanie podpowiedzi wyszukiwania.

Podpowiedzi wyszukiwania wyświetlane są pod polem wyszukiwania w panelu wyszukiwania. Dodawanie podpowiedzi jest kluczowe, ponieważ zaoszczędza czas użytkowników i daje ważne podpowiedzi o rodzaju informacji, jakie użytkownik może wyszukać w Twojej aplikacji. Podpowiedzi mogą pochodzić z różnych źródeł:

  • możesz je sam zdefiniować (np. lista producentów samochodów),
  • możesz pobrać je z systemu Windows (np. jeśli Twoja aplikacja szuka plików lokalnych),
  • możesz je pobrać z usługi sieci Web lub serwera.

Możesz użyć LocalContentSuggestionSettings, aby dodać podpowiedzi oparte o lokalne pliki Windows, w kilku tylko liniach kodu. Alternatywnie, możesz zarejestrować metodę do obsługi zdarzenia SuggestionsRequested i zbudować własną listę podpowiedzi, składającej się z sugestii z innego źródła (lokalnie zdefiniowane listy lub usługa sieciowa).

Przykłady kodu pokazują, jak dodać sugestie wyszukiwania - pobierz Search app contract sample. Przykład demonstruje m.in. jak dodać podpowiedzi, używając wszystkich trzech możliwych źródeł, oraz jak dodać sugestie dla języków wschodnioazjatyckich, używając Input Method Editor (IME).

  1. Jeśli to konieczne, dostosuj wygląd wyników wyszukiwania.

Strona wyników wyszukiwania definiuje szablony elementów wyświetlanych jako mały obrazek z tytułem i właściwościami dla każdego wyniku. Domyślnie, szablon i style są zdefiniowane w pliku Common/StandardStyles.xaml.

Jeśli domyślny szablon elementu nie wyczerpuje Twoich wyników wyszukiwania, powinieneś go zaktualizować, kopiując element szablonu lokalnie, następnie go modyfikując. Możesz dowiedzieć się więcej o elementach szablonu ListView i GridView, odpowiednio w Item templates for list layouts i Item templates for grid layouts.

  1. W razie potrzeby dodaj nawigację na stronie szczegółowych wyników.

Jeśli chcesz wyświetlać szczegółowe informacje o wybranym przez użytkownika wyniku, powinieneś utworzyć specjalną stronę w aplikacji do wyświetlania tych informacji i elementy nawigacyjne do przejścia z głównej strony wyszukiwania. Należy zarejestrować metodę obsługi zdarzeń dla zdarzenia ItemClick, zarówno dla elementu ListView, jak i GridView (możesz użyć jednej metody). Następnie, Twoja aplikacja może obsłużyć wyświetlenie strony szczegółowych wyników, w trybie, gdy jest główną aplikacją na ekranie i gdy zostanie przyciągnięta.

Więcej informacji na temat nawigacji pomiędzy stronami znajdziesz w Quickstart: Navigating between pages.

Testowanie integracji Twojego kontraktu wyszukiwania

Powinieneś testować integrację Twojej aplikacji z kontraktem wyszukiwania, używając przycisku wyszukiwania do wyszukiwania w Twojej aplikacji w każdej z następujących okoliczności. Użyj co najmniej tych dwóch zapytań testowych w każdym przypadku:

  • zapytanie z wyszukaniem, gdzie wiadomo, że powinien zostać wyświetlony wynik wyszukiwania,
  • puste zapytanie.
  1. Wykonaj testowanie wyszukiwania, podczas gdy Twoja aplikacja jest główną na ekranie. Uruchom Twoją aplikację, otwórz panel wyszukiwania, kiedy aplikacja jest aktywna i wprowadź zapytania.
  2. Testowanie wyszukiwania, podczas gdy Twoja aplikacja nie jest główną na ekranie. Uruchom aplikację, przełącz na ekran startowy systemu, otwórz panel wyszukiwania, wybierz Twoją aplikację i wprowadź zapytania.
  3. Testowanie wyszukiwania, podczas gdy Twoja aplikacja znajduje się w widoku przyciągania. Uruchom Twoją aplikację i przyciągnij ją, upewnij się, że Twoja aplikacja pozostaje na stronie głównej, następnie otwórz panel wyszukiwania, wybierz Twoją aplikację i wprowadź zapytania.
  4. Testowanie wyszukiwania, podczas gdy Twoja aplikacja uruchamiana jest pierwszy raz. Przed otwarciem panelu wyszukiwania, upewnij się, że Twoja aplikacja nie jest włączona lub wstrzymana. Wprowadź zapytania.

Podsumowanie i następne kroki

W odcinku poznałeś możliwość wykorzystania wbudowanych narzędzi w Visual Studio 2012 dla Windows 8 do dodawania wyszukiwania do Twojej aplikacji. Teraz, użytkownicy powinni mieć możliwość wyszukiwania aplikacji za pomocą panelu wyszukiwania.

W kolejnym odcinku zobacz Wytyczne i lista kontrolna wyszukiwania, pomagające projektować i tworzyć dobre doświadczenia wyszukiwania dla użytkowników.

Tematy pokrewne:

Dodatkowe referencje: