Problema di collegamento Deep Linking Android! Come utilizzare lo schema Custom UrL myapp: // some_data

Ho provato link1 , link2 , link3 , link4 , link5 , link6

Qui è tutto descritto su DeepLinking

  • Trasferimento ByteArray tramite Parcel restituisce NullPointerException
  • La vista Wrap_content all'interno di un ConstraintLayout si estende al di fuori dello schermo
  • Android support JDK 6 o 7
  • Passare l'integer tra attività e intenti in Android è sempre risultato in zero / null
  • come disegnare la linea sull'image con il dito in android
  • Aggiungere libreria di supporto al progetto Android Studio
  • Quello che voglio è il custom ures myapp: // some_data, apre l'applicazione nativa installata nel dispositivo che richiede some_data per inizializzare l'applicazione.

    Ci sono 2 scenari in cui è ansible fare clic sul URL personalizzato.

    1) dall'applicazione SMS, quando l'utente tocca il collegamento dovrebbe aprire automaticamente l'installazione altrimenti aprire il googleplay store where l'applicazione è ospitata

    2) dall'interno del corpo di un messaggio di posta elettronica.

    Ho provato tutti i link elencati sopra, ma nessuno di loro funziona per me. Ho un grosso problema con la parte del programma.

    Ecco il mio AndroidManifest.xml

    <?xml version="1.0" encoding="utf-8"?> 

     <uses-sdk android:minSdkVersion="8" android:targetSdkVersion="18" /> <application android:allowBackup="true" android:icon="@drawable/ic_launcher" android:label="@string/app_name" android:theme="@style/AppTheme" > <activity android:name="MainActivity" android:label="@string/app_name" android:exported="true" > <intent-filter> <action android:name="android.intent.action.VIEW" /> <category android:name="android.intent.category.BROWSABLE" /> <category android:name="android.intent.category.DEFAULT" /> <data android:scheme="inderbagga" /> </intent-filter> </activity> </application> 

    e qui è la MainActivity.java

     TextView tvText=(TextView)findViewById(R.id.tvid); if (getIntent().getAction() == Intent.ACTION_VIEW&&getIntent().getScheme().equals("inderbagga")) { Toast.makeText(getApplicationContext(), ""+getIntent().getScheme(), Toast.LENGTH_SHORT).show(); Uri uri = getIntent().getData(); // do stuff with uri tvText.setText(uri.toString()); } else tvText.setText("NULL"); 

    Per essere più specifico, voglio aprire l'applicazione nativa quando si scatta l'URL di tipo inderbagga: // a1b22c333, sia dall'applicazione sms che dal corpo del messaggio di posta elettronica gmail / yahoomail.

    al fine di get lo stesso, ho usato filtri di intenti per impostare lo schema. e getIntent () per leggere i dati che sono uguali a1b22c333 nella MainActivity.

  • Access-Control-Allow-Origin errore in Android 4.1
  • Limitazione di trascinamento di ImageView in Android
  • Il lollipop di Android cambia colore della barra di navigazione
  • Eccezione in Drawable.createFromResourceStream () - SOLO HTC?
  • Come gestisco i cookie con HttpClient in Android e / o Java?
  • Activity.addContentView (Visualizza) == ViewGroup.addContentView (Visualizza)?
  • 4 Solutions collect form web for “Problema di collegamento Deep Linking Android! Come utilizzare lo schema Custom UrL myapp: // some_data”

    clicca link significa che questo codice funziona

      <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="domain.com(google.com)"android:pathPrefix="/wp/poc1/(sufexes)" /> </intent-filter> 

    get i dati url

      //get uri data Uri data = getIntent().getData(); //get schma String scheme = data.getScheme(); // "http" //get server name String host = data.getHost(); // Ipaddress or domain name //get parameter String urltextboxname=data.getQueryParameter("name"); //set value in textview name.setText(urltextboxname); 

    Per essere più specifico, voglio aprire l'applicazione nativa quando si fa clic su url del tipo inderbagga: // a1b22c333, sia dall'applicazione sms che dal corpo del messaggio di posta elettronica gmail / yahoomail.

    Sono disponibili molte applicazioni SMS e di posta elettronica per Android. Proprio nessuno di loro conosce per convertire inderbagga://a1b22c333 in voci cliccabili. Puoi creare un elenco di tutte quelle applicazioni, contattare each team di sviluppo e chiedere loro di aggiungerlo.

    Oppure, puoi avere la tua app per un URL particolare http:// invece. Mentre l'utente verrà presentato con un selezionatore, per visualizzare tale URL all'interno della tua applicazione o di un browser Web, sarà alless cliccabile.

    Potresti anche provare questa libreria che facilita la dichiarazione di collegamenti profondi e l'estrazione dei parametri necessari:

    https://github.com/airbnb/DeepLinkDispatch

    Consente di dichiarare l'URI di cui sei interessato e il parametro che desideri estrarre attraverso le annotazioni, senza wherer eseguire l'analisi.

    Sembra che il problema che si sta facendo è che il tuo client e-mail e SMS non stanno analizzando correttamente lo schema e il path URI. La maggior parte non consente di immettere direttamente in uno schema URI. Inoltre, se l'applicazione non è installata, è necessario fare ricorso al Play Store affinché l'utente abbia una buona esperienza.

    Per farlo, è necessario call lo schema URI nel lato client JS. È ansible impostare un host web semplice e utilizzare questo script:

     <script type="text/javascript"> window.onload = function() { var method = 'iframe'; var fallbackFunction = function() { if (method == 'iframe') { window.location = "market://details?id=your.package.name"; } }; var addIFrame = function() { var iframe = document.createElement("iframe"); iframe.style.border = "none"; iframe.style.width = "1px"; iframe.style.height = "1px"; iframe.src = "inderbagga://a1b22c333"; document.body.appendChild(iframe); }; var loadChromeIntent = function() { method = 'intent'; document.location = "intent://a1b22c333#Intent;scheme= inderbagga;package=your.package.name;end"; }; if (navigator.userAgent.match(/Chrome/) && !navigator.userAgent.match("Version/")) { loadChromeIntent(); } else if (navigator.userAgent.match(/Firefox/)) { window.location = "inderbagga://a1b22c333"; } else { addIFrame(); } setTimeout(fallbackFunction, 750); }; </script> 

    Oppure, puoi utilizzare un servizio come branch.io che assembra automaticamente questo lato client JS per te oltre a lavorare anche su desktop e iOS.

    L'Android è un fan Android di Google, tutto su telefoni Android, Android Wear, Android Dev e applicazioni Android Games e così via.