طلبات البحث الرائجة

على غرار طلب اقتراحات البحث، للحصول على عرض واجهة مستخدم لعمليات البحث الرائجة، يجب أولاً الحصول على أداة الإنشاء باتّباع الخطوات التالية:

  1. يجب أن تنفّذ فئة Activity واجهة GetSearchSuggestionsViewGeneratorCallback أو تستخدم الفئة الداخلية المجهولة.
  2. تجاوز الطريقتَين onSuccess(SearchSuggestionsViewGenerator) وonError(String) في الواجهة GetSearchSuggestionsViewGeneratorCallback
  3. أنشئ مثيلاً لفئة GetTrendingSearchesViewOptions مع تحديد الحد الأقصى لعدد عمليات البحث الرائجة. (اختياري) يتضمّن هذا العنصر أيضًا العنصر SearchSuggestionsViewOptions الذي يوفّر بعض الخيارات لتخصيص مظهر واجهة مستخدم اقتراحات البحث.
  4. استدعِ دالة getTrendingSearchesView(GetTrendingSearchesViewOptions, GetSearchSuggestionsViewGeneratorCallback) الخاصة بـ SearchInAppsService.
  5. بعد الحصول على أداة إنشاء واجهة المستخدم، يمكنك تخزينها في ViewModel حتى لا تحتاج إلى طلبها مرة أخرى عندما تحتاج إلى إعادة إنشاء النشاط (مثلما يحدث عند تغيير الإعدادات أثناء تشغيل التطبيق).

نموذج الرموز البرمجية

جافا

package ...;

...
import androidx.appcompat.app.AppCompatActivity;
import com.google.android.libraries.searchinapps.GetSearchSuggestionsViewGeneratorCallback;
import com.google.android.libraries.searchinapps.GetTrendingSearchesViewOptions;
import com.google.android.libraries.searchinapps.SearchInAppsService;
import com.google.android.libraries.searchinapps.SearchSuggestionsViewGenerator;
...

public class MainActivity extends AppCompatActivity implements GetSearchSuggestionsViewGeneratorCallback {
  private SearchInAppsService service;

  @Override
  public void onSuccess(SearchSuggestionsViewGenerator generator) {
    ...
  }

  @Override
  public void onError(String errorMessage) {
    ...
  }

  @Override
  protected void onCreate(Bundle savedInstanceState) {
    ...
    service = SearchInAppsService.create(this);
    // Uses the default SearchSuggestionsViewOptions.
    service.getTrendingSearchesView(
      new GetTrendingSearchesViewOptions().setMaxNumTrends(3), this);
    ...
  }

  @Override
  public void onDestroy() {
    service.shutDown();
    super.onDestroy();
  }
}

Jetpack Compose

package ...

...
import android.os.Bundle
import androidx.activity.compose.setContent
import androidx.appcompat.app.AppCompatActivity
import androidx.compose.runtime.Composable
import androidx.compose.runtime.DisposableEffect
import androidx.compose.runtime.mutableStateOf
import androidx.compose.ui.platform.LocalContext
import com.google.android.libraries.searchinapps.GetSearchSuggestionsViewGeneratorCallback
import com.google.android.libraries.searchinapps.GetSearchSuggestionsViewOptions
import com.google.android.libraries.searchinapps.SearchInAppsService
import com.google.android.libraries.searchinapps.SearchSuggestionsViewGenerator
...

class MainActivity : AppCompatActivity() {
  override fun onCreate(savedInstanceState: Bundle?) {
    super.onCreate(savedInstanceState)
    setContent {
      SearchSuggestionsUI()
    }
  }

  @Composable
  fun SearchSuggestionsUI() {
    ...
    var service by remember {
      mutableStateOf<SearchInAppsService?>(
        SearchInAppsService.create(LocalContext.current))
    }
    DisposableEffect(Unit) { onDispose { service?.shutDown() } }
    val callback =
            object : GetSearchSuggestionsViewGeneratorCallback {
              override fun onSuccess(generator: SearchSuggestionsViewGenerator) {
                ...
              }

              override fun onError(errorMessage: String) {
                ...
              }
            }
    // Uses the default SearchSuggestionsViewOptions.
    var options: GetTrendingSearchesViewOptions =
            GetTrendingSearchesViewOptions()
              .setMaxNumTrends(3)
    service?.getTrendingSearchesView(options, callback)
    ...
  }
}

إنّ طريقة إضافة عرض واجهة مستخدم عمليات البحث الرائجة إلى واجهة مستخدم تطبيقك هي نفسها طريقة إضافة ميزة اقتراحات البحث.

التالي: عرض نتائج البحث