Android
Indexation des applications Firebase
Recherche…
Remarques
Lorsque vous choisissez d’implémenter l’indexation des applications, vous pouvez trouver de nombreux blogs, des documents qui peuvent vous induire en erreur, dans ce cas, je vous suggère de vous en tenir aux documents officiels fournis par Firebase-Google. Même si vous souhaitez utiliser un tiers pour ce faire, essayez d'abord de suivre cette documentation car cela vous donnera une idée claire de la manière dont les choses fonctionnent.
Google prendra environ 24 heures pour indexer votre contenu. Alors soyez patient. Vous pouvez faire des tests pour que tout se passe bien de votre côté.
Le premier exemple vous permet de prendre en charge l'URL HTTP de votre site Web pour la rediriger dans votre application. Cela fonctionnera, par exemple, vous avez recherché une requête dans la recherche google, les résultats montrent une des URL de votre site Web, dont les liens d'application sont présents dans votre application qui est déjà installée. En cliquant sur cette URL, il vous redirigera directement dans votre écran d'application correspondant à ce résultat de recherche. C'est ce que j'ai découvert pour cela.
L'ajout de l'API AppIndexing indexe votre contenu et est utilisé dans les complétions automatiques dans la barre de recherche Google. Prenons l'exemple de l'application InShorts pour chaque page, il y a un titre et une petite description. Après avoir lu 2 ou 3 titres, fermez l'application et passez à Google SearchBar.
Essayez d'entrer le titre que vous venez de parcourir, vous obtiendrez une suggestion de page d'application avec ce titre comme titre. Ceci est différent des suggestions App que vous obtenez lors de la recherche d'applications. Cela se produit car vous avez écrit le code API AppIndexing pour cette page particulière et le titre est identique à celui que vous avez initialisé dans onCreate()
.
URL de support
Étape 1: - Autorisez Google à explorer votre fichier robot.txt du serveur de contenu.Vous pouvez contrôler l'exploration de Google pour votre contenu en modifiant ce fichier, vous pouvez vous référer à ce lien pour plus de détails.
Etape 2: - Associez votre application à votre site Web.Incluez assetlinks.json Vous la chargez dans le répertoire connu de votre serveur Web.Le contenu de votre fichier assetlinks.json est
[{
"relation": ["delegate_permission/common.handle_all_urls"],
"target" :
{ "namespace": "android_app",
"package_name": "<your_package_name>",
"sha256_cert_fingerprints": ["<hash_of_app_certificate>"] }
}]
Étape 3: - Inclure les liens App dans votre fichier manifeste pour rediriger Urls dans votre application comme ci-dessous,
<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>
Référez-vous à ceci si vous voulez en savoir plus sur chaque tag ici.
<action> Spécifiez l'action d'intention ACTION_VIEW afin que le filtre d'intention soit accessible à partir de Google Search.
<data> Ajoutez un ou plusieurs tags, chaque tag représentant un format d'URI correspondant à l'activité. Au minimum, la balise doit inclure l'attribut android: scheme. Vous pouvez ajouter des attributs supplémentaires pour affiner davantage le type d'URI que l'activité accepte. Par exemple, vous pouvez avoir plusieurs activités qui acceptent des URI similaires, mais qui diffèrent simplement en fonction du nom du chemin. Dans ce cas, utilisez l'attribut android: path ou ses variantes (pathPattern ou pathPrefix) pour différencier l'activité que le système doit ouvrir pour différents chemins URI.
<catégorie> Inclure la catégorie BROWABLE. La catégorie BROWABLE est nécessaire pour que le filtre d'intention soit accessible à partir d'un navigateur Web. Sans cela, cliquer sur un lien dans un navigateur ne peut pas être résolu dans votre application. La catégorie DEFAULT est facultative, mais recommandée. Sans cette catégorie, l'activité peut être démarrée uniquement avec une intention explicite, en utilisant le nom du composant de votre application.
Étape 4: - Gérer les URL entrantes
@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());
}
}
Étape 5: - Vous pouvez tester cela en utilisant la commande Android Debug Bridge ou les configurations de studio. Commande Adb: - Lancez votre application puis lancez cette commande: -
adb shell am start -a android.intent.action.VIEW -d "{URL}" < package name >
Configurations d'Android Studio: - Studio Android> Build> Modifier la configuration> Options de lancement> Sélectionner l'URL> puis saisissez votre URL ici> Appliquer et tester.Lancez votre application si la fenêtre «Exécuter» affiche une erreur. Les applinks mentionnés dans le manifeste autrement s'exécuteront correctement, et redirigeront vers la page mentionnant votre URL si spécifié.
Ajouter l'API AppIndexing
Pour l'ajouter au projet, vous pouvez trouver facilement un document officiel, mais dans cet exemple, je vais mettre en évidence certains des domaines clés à prendre en compte.
Étape 1: - Ajouter un service Google
dependencies {
...
compile 'com.google.android.gms:play-services-appindexing:9.4.0'
...
}
Étape 2: - Importer des classes
import com.google.android.gms.appindexing.Action;
import com.google.android.gms.appindexing.AppIndex;
import com.google.android.gms.common.api.GoogleApiClient;
Étape 3: - Ajouter des appels d'API d'indexation d'application
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();
}
Pour tester cela, suivez simplement l’étape 4 de la section Remarques ci-dessous.