Mi implementación de la indexación de aplicaciones no funciona
Aquí está mi estructura de actividad: SplashActivity -> MainActivity. My MainActivity tiene un Spinner que se rellena de ContentProvider. Con base en la selección de Spinner, presento diferentes contenidos al usuario. El contenido se corresponde perfectamente con el contenido de mi sitio web. Mi sitio web ha sido indexado y está funcionando bien. Ahora quiero indexar dicho contenido en mi aplicación.
Aquí está mi manifiesto
- No se puede ver la tarea del archivo de asignación de carga de Firebase
- ¿Cómo guardar las coordenadas de GeoFire junto con otros elementos en la base de datos de Firebase?
- ¿Es correcto firebase para mi aplicación Android?
- Java.util.zip.ZipException: entrada duplicada con firebase
- URL de Firebase de Google Cloud Function Node.js
<activity android:name=".activities.SplashActivity" android:theme="@style/SplashTheme"> <intent-filter> <action android:name="android.intent.action.MAIN"/> <category android:name="android.intent.category.LAUNCHER"/> </intent-filter> <meta-data android:name="android.support.PARENT_ACTIVITY" android:value=".activities.MainActivity"/> <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="www.business.com" android:scheme="http"/> <data android:host="www.business.com" android:scheme="https"/> <data android:host="business.com" android:scheme="http"/> <data android:host="business.com" android:scheme="https"/> <data android:host="/*" android:scheme="business"/> <data android:scheme="android-app" android:host="com.business.android" /> </intent-filter> </activity>
Aquí está la parte de indexación de aplicaciones de mi MainActivity
@Override public void onStart() { super.onStart(); appIndexingTask(); } private void appIndexingTask() { new AsyncTask() { @Override protected Object doInBackground(Object[] params) { try { if(null == mNdxClient){ mNdxClient = new GoogleApiClient.Builder(MainActivity.this) .enableAutoManage(MainActivity.this, MainActivity.this) .addApi(AppInvite.API).addApi(AppIndex.API) .build(); } if(!mNdxClient.isConnected()){ mNdxClient.blockingConnect(); } if (mNdxClient != null && mNdxClient.isConnected()) { HashMap<Uri, Action> indexedActions = new HashMap<>(); List<Content> contentList = getAllFromContentProvider(); for(Content c: contentList){ Uri uri = Uri.parse(FirebaseUtils.appIndexingLink(c.getUrl())); Action action = getAction(c.getName(), c.getDescription(), uri); AppIndex.AppIndexApi.start(mNdxClient, action); indexedActions.put(uri, action); } for (Action action : indexedActions.values()) { AppIndex.AppIndexApi.end(mNdxClient, indexedActions.get(action)); } } } catch (Exception e) { //abandon task } return null; } public Action getAction(String title, String description, Uri uri) { Thing object = new Thing.Builder() .setName(title) .setDescription(description) .setUrl(uri) .build(); return new Action.Builder(Action.TYPE_VIEW) .setObject(object) .setActionStatus(Action.STATUS_TYPE_COMPLETED) .build(); } }.execute(); }
Aquí está el método Utility
public static String appIndexingLink(String urlString){ String appNdx= new StringBuilder("android-app://").append(BASE_URL).append(urlString).toString(); return appNdx; }
Por último, en gradle estoy usando
classpath 'com.google.gms:google-services:3.0.0'//project level //app level compile 'com.google.android.gms:play-services-appindexing:9.0.0' compile 'com.google.firebase:firebase-core:9.0.0' compile "com.google.firebase:firebase-messaging:9.0.0" compile "com.google.firebase:firebase-invites:9.0.0"
Algunos puntos importantes
- App-Invite funciona: Puedo enviar una invitación y luego abrir la invitación (código no mostrado)
- Deep Linking funciona, si me envío un enlace a mi sitio, cuando abro el enlace en mi teléfono Android, se abre con la aplicación perfectamente.
- La búsqueda de Google no ha indexado mi aplicación.
- Obtener como Google falla con "URI sin soporte" si apunto a Play Store o local apk.
Observe el filtro
<data android:scheme="android-app" android:host="com. business.android" />
No lo veo en ninguna documentación. Pero nada más funciona. Así que lo agregué. Todavía no funciona.
Aunque no estoy mostrando el registro. Estoy registrando y por lo tanto sé que el código de indexación de aplicaciones se ejecuta.
- Firebase Permiso denegado (lectura y escritura) con Autenticación
- Cómo enviar mensajes uno a uno utilizando la mensajería de Firebase
- Firebase recupera datos de un niño por clave
- El enlace dinámico de Firebase no abre / inicia mi aplicación instalada
- Firebase Analytic Search_Term El valor del parámetro no se muestra
- Esperaba un mapa mientras se deserializaba, pero obtuvo una clase java.lang.Long
- Firebase (FCM): activa la actividad y pasa los datos al hacer clic en la notificación. androide
- Firebase No hay propiedades que serializar encontradas en la clase
- Cargar imagen desde un directorio privado local en una vista web
- cordova android aplicación rechazada de google error de juego TrustManager