Sök…


Anmärkningar

  • När du väljer att implementera appindexering kan du hitta massor av bloggar, dokumentation där ute som kan förvirra dig. I det här fallet föreslår jag att du håller dig till officiella dokument som tillhandahålls av Firebase-Google. Även om du vill använda tredje part för att göra det, försök först följa den här dokumentationen eftersom det ger dig en klar uppfattning om hur saker fungerar.

  • Google tar cirka 24 timmar att indexera ditt innehåll. Så var tålamod. Du kan testa för att alla saker ska gå bra på din sida.

  • Det första exemplet låter dig stödja HTTP-URL på din webbplats för att omdirigera i din app. Detta fungerar som att du har sökt i en fråga i googlesökningen, resultaten visar en av din webbplats-URL, vars applänkar finns i din app som redan är installerad. När du klickar på denna URL kommer den att omdirigera dig direkt i din appskärm som motsvarar det sökresultatet. Det är det jag har upptäckt för detta.

  • Lägga till AppIndexing API indexerar ditt innehåll och används i Auto-kompletteringar i Googles sökfält. Låt oss ta ett exempel på inShorts-applikationen för varje sida, det finns en rubrik och en liten beskrivning. När du har läst 2 eller 3 rubriker stänger du applikationen och flyttar till google searchBar.

ange bildbeskrivning här

Försök att skriva in rubriken du just har gått igenom, du kommer att få förslag på app-sidor med den rubriken som titel. Detta skiljer sig från appförslag som du får när du söker efter appar. Detta händer eftersom du har skrivit AppIndexing API-kod för den här sidan och titeln är samma som du har initierat i onCreate() .

ange bildbeskrivning här

Stöder Http-URL: er

Steg 1: - Låt Google genomsöka till ditt innehåll. Ändra serverns robot.txt-fil. Du kan kontrollera Googles genomsökning för ditt innehåll genom att redigera den här filen, du kan hänvisa till den här länken för mer information.

Steg 2: - Koppla din app till din webbplats. Inkludera assetlinks.json. Du laddar upp den till din webbserverns. Välkända katalog. Innehållet i dina tillgångar.json är som-

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

}]

Steg 3: - Inkludera applänkar i din manifestfil för att omdirigera webbadresser till din applikation som nedan,

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

Se detta om du vill lära dig mer om varje tagg här.

<action> Ange avsiktsåtgärden ACTION_VIEW så att avsiktsfiltret kan nås från Google Search.

<data> Lägg till en eller flera taggar, där varje tagg representerar ett URI-format som löses till aktiviteten. Åtminstone måste taggen inkludera attributet android: schema. Du kan lägga till ytterligare attribut för att ytterligare förfina typen av URI som aktiviteten accepterar. Till exempel kan du ha flera aktiviteter som accepterar liknande URI, men som skiljer sig helt enkelt baserat på sökvägsnamnet. I det här fallet använder du Android: path-attributet eller dess varianter (pathPattern eller pathPrefix) för att skilja vilken aktivitet systemet ska öppna för olika URI-banor.

<kategori> Inkludera kategorin BROWSABLE. Kategorin BROWSABLE krävs för att avsiktsfiltret ska vara tillgängligt från en webbläsare. Utan den kan klicka på en länk i en webbläsare inte lösa din app. DEFAULT-kategorin är valfri, men rekommenderas. Utan den här kategorin kan aktiviteten endast startas med ett uttryckligt avsikt med ditt appkomponentnamn.

Steg 4: - Hantera inkommande URL: er

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

}

Steg 5: - Du kan testa detta med hjälp av Android Debug Bridge-kommando eller studiokonfigurationer. Adb-kommando: - Starta din applikation och kör sedan det här kommandot: -

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

Android Studio-konfigurationer: - Android-studio> Bygg> Redigera konfiguration> Starta alternativ> välj URL> skriv sedan in din URL här> Använd och testa. Kör din applikation om "Kör" -fönstret visar fel, måste du kontrollera ditt URL-format med din applänkar som nämns i manifest annars körs det framgångsrikt och omdirigerar till sidan som nämns din URL om det anges.

Lägg till AppIndexing API

För att lägga till detta till projekt kan du enkelt hitta officiella dokument men i det här exemplet kommer jag att lyfta fram några av de viktigaste områden som ska tas om hand.

Steg 1: - Lägg till google-tjänst

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

Steg 2: - Importera klasser

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

Steg 3: - Lägg till appindexering av API-samtal

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

För att testa detta, följ bara steg 4 i kommentarerna nedan.



Modified text is an extract of the original Stack Overflow Documentation
Licensierat under CC BY-SA 3.0
Inte anslutet till Stack Overflow