Ricerca…


Osservazioni

  • Quando decidi di implementare l'indicizzazione delle app, potresti trovare molti blog e documentazione che potrebbero confondervi, in questo caso ti suggerisco di attenersi ai documenti ufficiali forniti da Firebase-Google. Anche se si desidera utilizzare terze parti per farlo, per prima cosa provare a seguire questa documentazione perché questo vi darà un'idea chiara di come funzionano le cose.

  • Google impiegherà circa 24 ore per indicizzare i tuoi contenuti. Quindi sii paziente. Puoi fare dei test per far stare bene ogni cosa dalla tua parte.

  • Il primo esempio ti consente di supportare l'URL HTTP del tuo sito web per reindirizzare nella tua app. Ciò funzionerà come, hai cercato una query nella ricerca di google, i risultati mostrano uno dei tuoi URL del sito web, i cui collegamenti app sono presenti nella tua app che è già installata. Facendo clic su questo URL, ti reindirizzerà direttamente nella schermata dell'app corrispondente a quel risultato di ricerca. È così che ho scoperto per questo.

  • L'aggiunta di AppIndexing API indicizza il contenuto e viene utilizzato nei completamenti automatici nella barra di ricerca di Google. Prendiamo un esempio di applicazione InShorts per ogni pagina, c'è un titolo e una piccola descrizione. Dopo aver letto 2 o 3 titoli, chiudi l'applicazione e spostati su google searchBar.

inserisci la descrizione dell'immagine qui

Prova a inserire il titolo che hai appena visto, riceverai il suggerimento di una pagina di app con quel titolo come titolo. Questo è diverso dai suggerimenti delle app che ottieni durante la ricerca di app. Ciò accade perché hai scritto il codice API AppIndexing per questa particolare pagina e il titolo è lo stesso che hai inizializzato in onCreate() .

inserisci la descrizione dell'immagine qui

Supporta URL Http

Passaggio 1: - Consenti a Google di eseguire la scansione ai tuoi contenuti.Modifica il file robot.txt del server.Puoi controllare la scansione di google per i tuoi contenuti modificando questo file, puoi fare riferimento a questo link per ulteriori dettagli.

Passo 2: - Associa la tua app al tuo sito Web. Includi assetlinks.json Caricalo nella directory nota del tuo server Web. Contenuto del tuo assetlinks.json sono as-

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

}]

Passaggio 3: - Includere collegamenti di app nel file manifest per reindirizzare gli URL nella tua applicazione come di seguito,

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

Fai riferimento a questo se vuoi saperne di ogni tag qui.

<azione> Specifica l'azione intent ACTION_VIEW in modo che il filtro intent possa essere raggiunto da Ricerca Google.

<data> Aggiungi uno o più tag, in cui ogni tag rappresenta un formato URI che si risolve nell'attività. Al minimo, il tag deve includere l'attributo android: scheme. È possibile aggiungere ulteriori attributi per perfezionare ulteriormente il tipo di URI accettato dall'attività. Ad esempio, potresti avere più attività che accettano URI simili, ma che differiscono semplicemente in base al nome del percorso. In questo caso, utilizzare l'attributo android: path o le sue varianti (pathPattern o pathPrefix) per differenziare l'attività che il sistema dovrebbe aprire per i diversi percorsi URI.

<categoria> Include la categoria BROWSABLE. La categoria BROWSABLE è richiesta affinché il filtro intent sia accessibile da un browser web. Senza di esso, fare clic su un collegamento in un browser non può risolvere la tua app. La categoria DEFAULT è facoltativa, ma consigliata. Senza questa categoria, l'attività può essere avviata solo con un intento esplicito, utilizzando il nome del componente dell'app.

Passaggio 4: - Gestire gli URL in arrivo

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

}

Passo 5: - Puoi testare questo utilizzando il comando Android Debug Bridge o le configurazioni dello studio. Comando Adb: - Avvia l'applicazione e quindi esegui questo comando: -

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

Configurazioni di Android Studio: - Android studio> Costruisci> Modifica configurazione> Avvia opzioni> seleziona URL> quindi digita il tuo URL qui> Applica e verifica.Esegui la tua applicazione se la finestra "Esegui" mostra errore, quindi devi controllare il formato dell'URL con il tuo i link di app menzionati in manifest altrimenti verranno eseguiti correttamente e reindirizzati alla pagina menzionata nell'URL, se specificato.

Aggiungi API AppIndexing

Per l'aggiunta di questo a progetto è possibile trovare facilmente doc ufficiale, ma in questo esempio ho intenzione di evidenziare alcune delle aree chiave di cui occuparsi.

Passaggio 1: aggiungi il servizio Google

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

Passaggio 2: - Importa classi

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

Passaggio 3: Aggiungere le chiamate all'API di indicizzazione delle app

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

Per verificare ciò basta seguire il punto 4 in Osservazioni indicato di seguito.



Modified text is an extract of the original Stack Overflow Documentation
Autorizzato sotto CC BY-SA 3.0
Non affiliato con Stack Overflow