Szukaj…


Uwagi

  • Jeśli zdecydujesz się wdrożyć Indeksowanie aplikacji, możesz znaleźć wiele blogów, dokumentacji, które mogą Cię pomylić, w tym przypadku sugeruję trzymanie się oficjalnych dokumentów dostarczonych przez Firebase-Google. Nawet jeśli chcesz to zrobić przy pomocy strony trzeciej, najpierw spróbuj wykonać tę dokumentację, ponieważ da ci to jasny obraz tego, jak wszystko działa.

  • Google zajmie około 24 godzin na zaindeksowanie treści. Więc bądź cierpliwy. Możesz przeprowadzić testy, aby wszystko było po twojej stronie.

  • Pierwszy przykład umożliwia obsługę adresu URL HTTP witryny internetowej w celu przekierowania w aplikacji. Działa to tak, jakbyś przeszukał zapytanie w wyszukiwarce Google, wyniki pokazują jeden z adresów URL Twojej witryny, którego linki do aplikacji są obecne w aplikacji, która jest już zainstalowana. Po kliknięciu tego adresu URL przekieruje Cię bezpośrednio na ekranie aplikacji, odpowiadającemu temu wynikowi wyszukiwania. Właśnie to odkryłem.

  • Dodanie AppIndexing API indeksuje treść i jest używane w automatycznych uzupełnieniach w pasku wyszukiwania Google. Weźmy przykład aplikacji inShorts dla każdej strony z nagłówkiem i małym opisem. Po przeczytaniu 2 lub 3 nagłówków zamknij aplikację i przejdź do paska wyszukiwania Google.

wprowadź opis zdjęcia tutaj

Spróbuj wpisać nagłówek, który właśnie przeszedłeś, otrzymasz sugestię strony aplikacji z tym nagłówkiem jako tytułem. Różni się to od sugestii aplikacji, które otrzymujesz podczas wyszukiwania aplikacji. Dzieje się tak, ponieważ napisałeś kod AppIndexing API dla tej konkretnej strony, a tytuł jest taki sam jak zainicjowany w onCreate() .

wprowadź opis zdjęcia tutaj

Obsługa adresów URL HTTP

Krok 1: - Pozwól Googleowi na indeksowanie do Twojej zawartości. Edytuj plik robot.txt serwera. Możesz kontrolować indeksowanie treści przez Google, edytując ten plik, możesz znaleźć ten link, aby uzyskać więcej informacji.

Krok 2: - Skojarz aplikację ze swoją witryną. Uwzględnij assetlinks.json Prześlij ją do dobrze znanego katalogu swojego serwera internetowego.

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

}]

Krok 3: - Dołącz linki aplikacji do pliku manifestu, aby przekierować adresy URL do aplikacji, jak poniżej,

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

Zapoznaj się z tym, jeśli chcesz dowiedzieć się o każdym tagu tutaj.

<akcja> Określ czynność zamiaru ACTION_VIEW, aby filtr zamiaru był dostępny z wyszukiwarki Google.

<dane> Dodaj jeden lub więcej znaczników, gdzie każdy znacznik reprezentuje format URI, który jest rozwiązywany do działania. Tag musi zawierać przynajmniej atrybut android: schemat. Możesz dodać dodatkowe atrybuty, aby doprecyzować typ identyfikatora URI, który akceptuje działanie. Na przykład możesz mieć wiele działań, które akceptują podobne identyfikatory URI, ale które różnią się po prostu na podstawie nazwy ścieżki. W takim przypadku użyj atrybutu android: path lub jego wariantów (pathPattern lub pathPrefix), aby rozróżnić aktywność, którą system powinien otworzyć dla różnych ścieżek URI.

<kategoria> Dołącz kategorię BROWSABLE. Kategoria BROWSABLE jest wymagana, aby filtr zamiarów był dostępny w przeglądarce internetowej. Bez tego kliknięcie łącza w przeglądarce nie może rozwiązać problemu z aplikacją. Kategoria DOMYŚLNA jest opcjonalna, ale zalecana. Bez tej kategorii aktywność można rozpocząć tylko z wyraźnym zamiarem, używając nazwy komponentu aplikacji.

Krok 4: - Obsługa przychodzących adresów 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());
   }

}

Krok 5: - Możesz to przetestować, używając polecenia Android Debug Bridge lub konfiguracji studia. Polecenie Adb: - Uruchom aplikację, a następnie uruchom to polecenie: -

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

Konfiguracje Android Studio: - Android studio> Kompilacja> Edytuj konfigurację> Opcje uruchamiania> wybierz URL> a następnie wpisz tutaj swój adres URL> Zastosuj i przetestuj. Uruchom aplikację, jeśli okno „Uruchom” pokazuje błąd, musisz sprawdzić format adresu URL za pomocą applinks wspomniane w manifeście, w przeciwnym razie zostanie pomyślnie uruchomione i przekieruje na stronę podaną twój adres URL, jeśli jest określony.

Dodaj interfejs API AppIndexing

Aby dodać to do projektu, możesz łatwo znaleźć oficjalny dokument, ale w tym przykładzie przedstawię niektóre kluczowe obszary, którymi należy się zająć.

Krok 1: - Dodaj usługę Google

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

Krok 2: - Zaimportuj klasy

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

Krok 3: - Dodaj wywołania interfejsu API indeksowania aplikacji

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

Aby to sprawdzić, wykonaj krok 4 w uwagach podanych poniżej.



Modified text is an extract of the original Stack Overflow Documentation
Licencjonowany na podstawie CC BY-SA 3.0
Nie związany z Stack Overflow