Android
Firebase-app-indexering
Zoeken…
Opmerkingen
Wanneer u ervoor kiest om App-indexering te implementeren, kunt u veel blogs en documentatie vinden die u in verwarring kunnen brengen. In dit geval raad ik u aan om u te houden aan officiële documenten van Firebase-Google. Zelfs als u hiervoor een derde partij wilt gebruiken, volg dan eerst deze documentatie, omdat dit u een duidelijk idee geeft hoe de dingen werken.
Google heeft ongeveer 24 uur nodig om uw inhoud te indexeren. Dus wees geduldig. Je kunt testen om te zorgen dat alles goed is aan jouw kant.
In het eerste voorbeeld kunt u de HTTP-URL van uw website ondersteunen om deze in uw app om te leiden. Dit werkt zoals, u hebt een zoekopdracht gezocht in de Google-zoekopdracht, resultaten tonen een van uw website-URL, waarvan de app-links aanwezig zijn in uw app die al is geïnstalleerd. Als u op deze URL klikt, wordt u rechtstreeks doorgestuurd naar uw app-scherm dat overeenkomt met dat zoekresultaat. Dat is het dat ik hiervoor heb ontdekt.
AppIndexing API toevoegen indexeert uw inhoud en wordt gebruikt in Auto-voltooiingen in de Google-zoekbalk. Laten we een voorbeeld nemen van inShorts Application voor elke pagina is er een kop en een korte beschrijving. Na het lezen van 2 of 3 koppen, sluit u de applicatie en gaat u naar Google SearchBar.
Voer de kop in die u zojuist hebt doorlopen, u krijgt een suggestie voor een app-pagina met die kop als titel. Dit is anders dan App-suggesties die u krijgt tijdens het zoeken naar Apps. Dit gebeurt omdat u AppIndexing API-code voor deze specifieke pagina hebt geschreven en de titel hetzelfde is als die u in onCreate()
hebt geïnitialiseerd.
Ondersteunende HTTP-URL's
Stap 1: - Laat Google naar uw inhoud crawlen. Bewerk het robot.txt-bestand van de server. U kunt Google-crawlen voor uw inhoud beheren door dit bestand te bewerken, u kunt naar deze link verwijzen voor meer informatie.
Stap 2: - Koppel uw app aan uw website.Inclusief assetlinks.json U uploadt deze naar de bekende directory van uw webserver. Inhoud van uw assetlinks.json zijn as-
[{
"relation": ["delegate_permission/common.handle_all_urls"],
"target" :
{ "namespace": "android_app",
"package_name": "<your_package_name>",
"sha256_cert_fingerprints": ["<hash_of_app_certificate>"] }
}]
Stap 3: - Neem App-links op in uw manifestbestand om URL's om te leiden naar uw toepassing zoals hieronder,
<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>
Raadpleeg dit als u meer wilt weten over elke tag hier.
<actie> Geef de ACTION_VIEW intentie-actie op zodat het intentiefilter kan worden bereikt vanuit Google Zoeken.
<data> Voeg een of meer tags toe, waarbij elke tag een URI-indeling voorstelt die wordt omgezet in de activiteit. De tag moet minimaal het kenmerk android: scheme bevatten. U kunt extra kenmerken toevoegen om het type URI dat de activiteit accepteert, verder te verfijnen. U hebt bijvoorbeeld meerdere activiteiten die vergelijkbare URI's accepteren, maar die eenvoudig verschillen op basis van de padnaam. Gebruik in dit geval het kenmerk android: path of de varianten ervan (pathPattern of pathPrefix) om te onderscheiden welke activiteit het systeem moet openen voor verschillende URI-paden.
<categorie> Neem de categorie BROWSABLE op. De categorie BROWSABLE is vereist om het intentiefilter toegankelijk te maken via een webbrowser. Zonder dit kan het klikken op een link in een browser niet oplossen naar uw app. De categorie DEFAULT is optioneel, maar wordt aanbevolen. Zonder deze categorie kan de activiteit alleen worden gestart met een expliciete intentie, met behulp van de naam van uw app-component.
Stap 4: - Inkomende URL's verwerken
@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());
}
}
Stap 5: - U kunt dit testen met behulp van de Android Debug Bridge-opdracht of studioconfiguraties. Adb-opdracht: - Start uw toepassing en voer deze opdracht uit: -
adb shell am start -a android.intent.action.VIEW -d "{URL}" < package name >
Android Studio-configuraties: - Android-studio> Build> Configuratie bewerken> Startopties > selecteer URL> typ vervolgens uw URL hier> Toepassen en test. Voer uw applicatie uit als het venster "Uitvoeren" een foutmelding geeft, dan moet u uw URL-indeling controleren met uw applinks vermeld in manifest anders zal het met succes worden uitgevoerd, en doorverwijzen naar pagina vermeld uw URL indien gespecificeerd.
AppIndexing API toevoegen
Voor het toevoegen van dit aan project kun je eenvoudig officiële documenten vinden, maar in dit voorbeeld zal ik enkele van de belangrijkste gebieden benadrukken die moeten worden behandeld.
Stap 1: - Voeg Google-service toe
dependencies {
...
compile 'com.google.android.gms:play-services-appindexing:9.4.0'
...
}
Stap 2: - Importeer klassen
import com.google.android.gms.appindexing.Action;
import com.google.android.gms.appindexing.AppIndex;
import com.google.android.gms.common.api.GoogleApiClient;
Stap 3: - Voeg App Indexing API-aanroepen toe
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();
}
Om dit te testen volgt u stap 4 in Opmerkingen hieronder.