2016-06-14 24 views
14

Come testare un collegamento dinamico o un invito? Esiste un comando adb che può essere eseguito e come verrà generato quel collegamento.Come testare un invito Firebase?

Ho provato (con diverse varianti)

adb shell am start -W -a android.intent.action.VIEW -d "https://play.google.com/store/apps/details?id=com.gonevertical.chatterbox\\&pcampaignid=appinvite_\\&referrer=deep_link_id%3Dhttps://gonevetical.com/chatterbox/invite/group/-KJnkQfRjZfAH9-U_U4a%26invitation_id%3D20832144509-9642991a-de62-4d40-ba93-b991208c2d31" com.gonevertical.chatterbox 

Il progetto https://github.com/branflake2267/chatterbox/blob/master/android/app/src/main/AndroidManifest.xml

+0

Ho provato ad utilizzare shell adb, come testare un referrer di installazione, ma non sembra funzionare. Per riferimento: 'am broadcast -a com.android.vending.INSTALL_REFERRER -n {com.your.package} /com.tune.TuneTracker --es referrer" test_referrer = test "' – staackuser2

+0

so che questo non è un commento utile , più di un rant: ho trovato che i test per Firebase sono piuttosto schifosi come in: un ripensamento totale ....spero che migliorerà col tempo, visto che hanno fatto quei fantastici codelab, ecc. (che ammetto è stato davvero fantastico) – Creos

+0

@Creos d'accordo. ero un po 'scioccato per la mancanza di documentazione ed esempi. Ho visto quelli su Github, ma questa domanda è un esempio di un caso di uso effettivo che dicono di supportare, ma in realtà non dice come farlo. – staackuser2

risposta

8

Prima della prova di avvio invita dovrebbe:

  1. Collegare l'app per il vostro Progetto Firebase, fallo dal Firebase console.
  2. Abilita i collegamenti dinamici Firebase, esegui da Firebase console aprendo la sezione Collegamenti dinamici e accettando i termini del servizio, se richiesto.
  3. Add Firebase to your Android project.
  4. Aggiungere la dipendenza per Firebase invita alla vostra applicazione a livello build.gradle di file: file di

Gradle:

compile 'com.google.firebase:firebase-invites:9.0.2' 

inviare inviti

Costruire un Intent utilizzando la classe diAppInviteInvitation.IntentBuilder :

private void onInviteClicked() { 
    Intent intent = new AppInviteInvitation.IntentBuilder(getString(R.string.invitation_title)) 
      .setMessage(getString(R.string.invitation_message)) 
      .setDeepLink(Uri.parse(getString(R.string.invitation_deep_link))) 
      .setCustomImage(Uri.parse(getString(R.string.invitation_custom_image))) 
      .setCallToActionText(getString(R.string.invitation_cta)) 
      .build(); 
    startActivityForResult(intent, REQUEST_INVITE); 
} 

L'avvio dell'intenzione AppInviteInvitation apre il selettore dei contatti in cui l'utente seleziona i contatti da invitare. Gli inviti vengono inviati tramite e-mail o SMS. Dopo che l'utente sceglie i contatti e invia l'invito, la vostra applicazione riceve un callback per onActivityResult:

@Override 
protected void onActivityResult(int requestCode, int resultCode, Intent data) { 
    super.onActivityResult(requestCode, resultCode, data); 
    Log.d(TAG, "onActivityResult: requestCode=" + requestCode + ", resultCode=" + resultCode); 

    if (requestCode == REQUEST_INVITE) { 
     if (resultCode == RESULT_OK) { 
      // Get the invitation IDs of all sent messages 
      String[] ids = AppInviteInvitation.getInvitationIds(resultCode, data); 
      for (String id : ids) { 
       Log.d(TAG, "onActivityResult: sent invitation " + id); 
      } 
     } else { 
      // Sending failed or it was canceled, show failure message to the user 
      // ... 
     } 
    } 
} 

Ricevi inviti

Quando un utente riceve un invito, se l'utente non ha ancora installato l'applicazione, possono scegli di installare l'app da Google Play Store. Quindi, dopo aver installato l'app o se l'app è stata già installata, l'app viene avviata e riceve l'URL al suo contenuto, se ne è stato inviato uno. Per ricevere l'URL al contenuto del vostro app, chiamare il metodo getInvitation:

@Override 
protected void onCreate(Bundle savedInstanceState) { 
    // ... 

    // Create an auto-managed GoogleApiClient with access to App Invites. 
    mGoogleApiClient = new GoogleApiClient.Builder(this) 
      .addApi(AppInvite.API) 
      .enableAutoManage(this, this) 
      .build(); 

    // Check for App Invite invitations and launch deep-link activity if possible. 
    // Requires that an Activity is registered in AndroidManifest.xml to handle 
    // deep-link URLs. 
    boolean autoLaunchDeepLink = true; 
    AppInvite.AppInviteApi.getInvitation(mGoogleApiClient, this, autoLaunchDeepLink) 
      .setResultCallback(
        new ResultCallback<AppInviteInvitationResult>() { 
         @Override 
         public void onResult(AppInviteInvitationResult result) { 
          Log.d(TAG, "getInvitation:onResult:" + result.getStatus()); 
          if (result.getStatus().isSuccess()) { 
           // Extract information from the intent 
           Intent intent = result.getInvitationIntent(); 
           String deepLink = AppInviteReferral.getDeepLink(intent); 
           String invitationId = AppInviteReferral.getInvitationId(intent); 

           // Because autoLaunchDeepLink = true we don't have to do anything 
           // here, but we could set that to false and manually choose 
           // an Activity to launch to handle the deep link here. 
           // ... 
          } 
         } 
        }); 
} 

IMPORTANTE: codice sopra richiede un contatto con GoogleApiClientAppInvite.API abilitato.

Se il parametro launchDeepLink è true, l'app si riavvia automaticamente con l'URL del contenuto dell'app, che l'app può gestire normalmente. Se il parametro launchDeepLink è false, è possibile avviare manualmente l'intento restituito da getInvitationIntent per gestire l'URL quando appropriato.

Ecco ulteriori informazioni su hot a Send and Receive Firebase Invites from Your Android App.

link Testing in Android Studio

Inoltre è possibile utilizzare la funzione Deep Link Test per Studio Android caratteristica versione 2.x per verificare che la vostra applicazione può essere lanciato con un URL specificato. Per configurare questa opzione, selezionare prima Esegui> Modifica configurazioni dall'applicazione Android > Generale. Per testare un URL HTTP, selezionare il collegamento diretto nelle Opzioni di avvio e quindi immettere l'URL da testare. Se il collegamento ha esito positivo, l'app dovrebbe essere avviata nell'emulatore o sul dispositivo connesso. In caso contrario, viene visualizzato un messaggio di errore nella finestra Esegui.

Debug Android Ponte

prova che i collegamenti aprire la vostra applicazione utilizzando il ponte di debug di Android, dove {URL} rappresenta l'URL HTTP dichiarato nel file manifest.

adb shell am start -a android.intent.action.VIEW -d "{URL}" com.example.android 

A link non v'è più informazioni su come verificare l'implementazione.

+0

Tutte le informazioni che hai appena citato sono copiate dai documenti di configurazione per gli inviti a Firebase (https://firebase.google.com/docs/invites/android). OP (e io stesso) vogliono sapere come è possibile simulare l'installazione dell'app tramite un link di invito. Al momento sembra che l'unico modo per essere sicuri che i link di invito al lavoro siano i test dopo aver spinto la tua app nel Play Store. – Josh

+1

Questo normalmente ti invierà al Play Store o all'App Store per scaricare l'app. Poiché si tratta di un'app di prova, si collegherà a una pagina di archivio inesistente. Un'altra alternativa è provare a usare [Firebase Invites Quickstart] (https://github.com/firebase/quickstart-cpp/blob/master/invites/testapp/readme.md). Dimostra sia l'invio e la ricezione di Inviti Firebase utilizzando l'SDK C++ di Firebase Invites. Quando esegui per la prima volta l'app, controllerà la presenza di un link o invito dinamico in entrata e segnalerà se è stato possibile recuperare un invito. Permetti anche di simulare la ricezione di un invito da un amico. –

+0

solo una copia incolla da documenti ufficiali –

3

Le ho testate creando i collegamenti nella console di FireBase, copiando il/i collegamento/i ad una e-mail, aprendo l'e-mail in un dispositivo e facendo clic sui collegamenti sul dispositivo. Puoi verificare l'app in questo modo.

Se si desidera eseguire il debug dei collegamenti, fare lo stesso, ma copiare il collegamento completo a un'e-mail, non quella breve e sperimentare le varianti del collegamento completo.

1

Ho trovato il seguito in un collegamento pubblicato nel commento della risposta vincente alla taglia. Ti consente di ricevere un invito e testare il tuo codice di gestione di una nuova installazione da un invito.

Per simulare la ricezione di un invito da un amico, è possibile inviare un invito, disinstallare l'app di test, quindi fare clic sul collegamento nella propria e-mail.

Questo normalmente verrà inviato al Play Store o App Store per scaricare l'app. Poiché si tratta di un'app di prova, si collegherà a una pagina di archivio inesistente.

Dopo aver fatto clic sul collegamento di invito, reinstallare ed eseguire l'app sul dispositivo o sull'emulatore e vedere l'invito recuperato sul lato ricevente.

0

Ho fatto come staackuser2, con una menzione. Puoi pubblicare la tua app su Google Play chiuso Alpha/Beta. Aggiungi te stesso e un altro account di posta elettronica all'elenco dei tester. In questo modo, l'app sarà visibile su Google Play per entrambi i dispositivi registrati come tester. È quindi possibile inviare inviti tra i due account. Cliccando sul link nell'e-mail si arriva all'app sull'App Store. Se lo installi, puoi verificare l'ID di invito (e altre informazioni relative al deeplink, come codice promozionale, ecc.) All'avvio dell'app.