Join FlipAndroid.COM Telegram Group: https://t.me/joinchat/F_aqThGkhwcLzmI49vKAiw


Interceptar enlaces desde el navegador para abrir mi aplicación de Android

Me gustaría poder solicitar a mi aplicación que abra un enlace cuando el usuario haga clic en una URL de un patrón dado en lugar de permitir que el navegador lo abra. Esto podría ser cuando el usuario está en una página web en el navegador o en un cliente de correo electrónico o dentro de un WebView en una aplicación recientemente recaudada.

Por ejemplo, haz clic en un enlace de YouTube desde cualquier parte del teléfono y tendrás la oportunidad de abrir la aplicación de YouTube.

  • Android: ¿Dónde poner el código onCreate () de la actividad en un fragmento?
  • Transmitir video en vivo de un teléfono a otro utilizando socket fd
  • Imágenes borrosas en el navegador Android de stock
  • Iconos en un diálogo de lista
  • Cambiar dibujable basado en tema
  • Diferencia entre singleTask y singleInstance
  • ¿Cómo puedo lograr esto para mi propia aplicación?

  • Utilizando startActivityForResult, ¿cómo obtener requestCode en la actividad de un niño?
  • Android - Escala de botones de imagen
  • Android-support-v4.jar no se importa correctamente en Eclipse
  • Cómo habilitar el registro para apache commons HttpClient en Android
  • Los desarrolladores de esta aplicación no han configurado correctamente esta aplicación para iniciar sesión en Facebook.
  • Clase común para AsyncTask en Android?
  • 3 Solutions collect form web for “Interceptar enlaces desde el navegador para abrir mi aplicación de Android”

    Utilice un android.intent.action.VIEW de la categoría android.intent.category.BROWSABLE .

    Desde AndroidManifest.xml de la aplicación Photostream de Romain Guy,

    <activity android:name=".PhotostreamActivity" android:label="@string/application_name"> <!-- ... --> <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:scheme="http" android:host="flickr.com" android:pathPrefix="/photos/" /> <data android:scheme="http" android:host="www.flickr.com" android:pathPrefix="/photos/" /> </intent-filter> </activity> 

    Una vez dentro, estás en la actividad , necesitas buscar la acción, y luego haz algo con la URL que te han entregado. El método Intent.getData() le da un Uri.

      final Intent intent = getIntent(); final String action = intent.getAction(); if (Intent.ACTION_VIEW.equals(action)) { final List<String> segments = intent.getData().getPathSegments(); if (segments.size() > 1) { mUsername = segments.get(1); } } 

    Cabe señalar, sin embargo, que esta aplicación es un poco fuera de fecha (1.2), por lo que puede encontrar hay mejores maneras de lograr esto.

    Hay algunas bibliotecas analizar los parámetros de url automáticamente.

    como

    https://github.com/airbnb/DeepLinkDispatch

    Un

    https://github.com/mzule/ActivityRouter

    El más tarde es escrito por mí. Que puede analizar parámetros de tipo dado, no siempre String.

    Ejemplo

     @Router(value = "main/:id" intExtra = "id") ... int id = getIntent().getInt("id", 0); 
     private class MyWebViewClient extends WebViewClient { @Override public boolean shouldOverrideUrlLoading(WebView view, String url) { setUrlparams(url); if (url.indexOf("pattern") != -1) { // do something return false; } else { view.loadUrl(url); } return true; } } 
    FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.