Поиск…


замечания

  • Когда вы решите внедрить индексирование приложений, вы можете найти много блогов, документацию, которые могут вас смутить, в этом случае я предлагаю вам придерживаться официальных документов, предоставленных Firebase-Google. Даже если вы хотите использовать третью сторону для этого, сначала попробуйте следовать этой документации, потому что это даст вам четкое представление о том, как все работает.

  • Google проведет около 24 часов, чтобы проиндексировать ваш контент. Будьте терпеливы. Вы можете сделать тестирование, чтобы все было хорошо на вашей стороне.

  • Первый пример позволяет вам поддерживать HTTP-адрес вашего веб-сайта для перенаправления в вашем приложении. Это будет работать, например, вы искали запрос в поиске Google, результаты показывают один из URL вашего сайта, ссылки на приложения которого присутствуют в вашем уже установленном приложении. При щелчке по этому URL-адресу он перенаправляет вас прямо на ваш экран приложения, соответствующий этому результату поиска. Вот что я открыл для этого.

  • Добавление API AppIndexing индексирует ваш контент и используется в Auto completions в панели поиска Google. Давайте возьмем пример приложения inShorts для каждой страницы, есть заголовок и небольшое описание. После чтения 2 или 3 заголовков закройте приложение и перейдите в google searchBar.

введите описание изображения здесь

Попробуйте ввести заголовок, который вы только что прошли, вы получите предложение страницы страницы с заголовком в качестве заголовка. Это отличается от предложений приложений, которые вы получаете во время поиска приложений. Это происходит из-за того, что вы написали код API AppIndexing для этой конкретной страницы, и заголовок такой же, как вы инициализировали в onCreate() .

введите описание изображения здесь

Поддержка URL-адресов Http

Шаг 1: Разрешить Google выполнять сканирование в файл robot.txt вашего содержимого. Извлеките сервер robot.txt. Вы можете контролировать сканирование Google для вашего контента, отредактировав этот файл, вы можете обратиться к этой ссылке для получения более подробной информации.

Шаг 2: - Свяжите свое приложение с вашим сайтом. Включите ресурс links.json. Загрузите его в известную директорию вашего веб-сервера. Контент вашего ресурса links.json -

       [{
"relation": ["delegate_permission/common.handle_all_urls"],
"target" : 
{ "namespace": "android_app",
"package_name": "<your_package_name>",
"sha256_cert_fingerprints": ["<hash_of_app_certificate>"] }

}]

Шаг 3: - Включите ссылки приложения в файл манифеста, чтобы перенаправить URL-адреса в ваше приложение, как показано ниже,

<activity
       android:name=".activity.SampleActivity"
       android:label="@string/app_name"
       android:windowSoftInputMode="adjustResize|stateAlwaysHidden">
       <intent-filter>
             <action android:name="android.intent.action.VIEW" />
             <category android:name="android.intent.category.DEFAULT" />
             <category android:name="android.intent.category.BROWSABLE" />
       <data
             android:host="example.live"
             android:pathPrefix="/vod"
             android:scheme="https"/>
       <data
             android:host="example.live"
             android:pathPrefix="/vod"
             android:scheme="http"/>
     </intent-filter>
   </activity>

Обратитесь к этому, если вы хотите узнать о каждом теге здесь.

<действие> Укажите действие действия ACTION_VIEW, чтобы можно было установить фильтр намерений из Google Search.

<data> Добавьте один или несколько тегов, где каждый тег представляет собой формат URI, который разрешает эту активность. Как минимум, тег должен включать атрибут android: schem. Вы можете добавить дополнительные атрибуты для дальнейшего уточнения типа URI, который принимает действие. Например, у вас может быть несколько действий, которые принимают аналогичные URI, но которые отличаются просто по имени пути. В этом случае используйте атрибут android: path или его варианты (pathPattern или pathPrefix), чтобы различать, какую деятельность система должна открывать для разных путей URI.

<category> Включить категорию BROWSABLE. Категория BROWSABLE требуется для того, чтобы фильтр намерения был доступен из веб-браузера. Без этого нажатие ссылки в браузере не может быть разрешено для вашего приложения. Категория DEFAULT является необязательной, но рекомендуется. Без этой категории активность может быть запущена только с явным намерением, используя ваше имя компонента приложения.

Шаг 4: - Обработка входящих URL-адресов

    @Override
    protected void onCreate(Bundle savedInstanceState) {
       super.onCreate(savedInstanceState);
       setContentView(R.layout.activity_schedule);
       onNewIntent(getIntent());
  }

   protected void onNewIntent(Intent intent) {
   String action = intent.getAction();
   Uri data = intent.getData();
   if (Intent.ACTION_VIEW.equals(action) && data != null) {
       articleId = data.getLastPathSegment();
       TextView linkText = (TextView)findViewById(R.id.link);
       linkText.setText(data.toString());
   }

}

Шаг 5: - Вы можете проверить это, используя команду Android Debug Bridge или студийную конфигурацию. Команда Adb: - Запустите приложение и выполните следующую команду:

adb shell am start -a android.intent.action.VIEW -d "{URL}" < package name >

Android Studio Configurations: - Студия Android> Сборка> Изменить конфигурацию> Параметры запуска> выберите URL> затем введите URL-адрес здесь> Применить и проверить. Запустите приложение, если в окне «Выполнить» отображается ошибка, тогда вам нужно проверить свой формат URL с помощью приложения, упомянутые в манифесте, в противном случае он будет успешно запущен и перенаправлен на страницу, указанную вашим URL, если это указано.

Добавить API AppIndexing

Для добавления этого в проект вы можете легко найти официальный документ, но в этом примере я остановлюсь на некоторых ключевых областях, о которых нужно позаботиться.

Шаг 1: - Добавить службу google

dependencies {
      ...
      compile 'com.google.android.gms:play-services-appindexing:9.4.0'
      ...
    }

Шаг 2: - Импорт классов

import com.google.android.gms.appindexing.Action;
import com.google.android.gms.appindexing.AppIndex;
import com.google.android.gms.common.api.GoogleApiClient;

Шаг 3: - добавление API-интерфейсов индексирования приложений

private GoogleApiClient mClient;
private Uri mUrl;
private String mTitle;
private String mDescription;

//If you know the values that to be indexed then you can initialize these variables in onCreate() 
@Override
protected void onCreate(Bundle savedInstanceState) {
mClient = new GoogleApiClient.Builder(this).addApi(AppIndex.API).build();
mUrl = "http://examplepetstore.com/dogs/standard-poodle";
mTitle = "Standard Poodle";
mDescription = "The Standard Poodle stands at least 18 inches at the withers";
}

//If your data is coming from a network request, then initialize these value in onResponse() and make checks for NPE so that your code won’t fall apart.

//setting title and description for App Indexing
mUrl = Uri.parse(“android-app://com.famelive/https/m.fame.live/vod/” +model.getId());
mTitle =   model.getTitle();
mDescription = model.getDescription();

mClient.connect();
AppIndex.AppIndexApi.start(mClient, getAction());

@Override
protected void onStop() {
if (mTitle != null && mDescription != null && mUrl != null) //if your response fails then check whether these are initialized or not
   if (getAction() != null) {
       AppIndex.AppIndexApi.end(mClient, getAction());
       mClient.disconnect();
    }
 super.onStop();
}

 public Action getAction() {
   Thing object = new Thing.Builder()
       .setName(mTitle)
       .setDescription(mDescription)
       .setUrl(mUrl)
       .build();

 return new Action.Builder(Action.TYPE_WATCH)
       .setObject(object)
       .setActionStatus(Action.STATUS_TYPE_COMPLETED)
       .build();
}

Чтобы проверить это, просто следуйте шагу 4 в примечаниях, приведенных ниже.



Modified text is an extract of the original Stack Overflow Documentation
Лицензировано согласно CC BY-SA 3.0
Не связан с Stack Overflow