2017-08-22 1 views
0

J'utilise Branch.io en profondeur dans mon application Android, et pour la plupart, cela fonctionne bien dans la plupart des scénarios. Cependant, j'ai un scénario où j'inscris un utilisateur (à mon service); et dans ce flux, l'utilisateur demande un code de vérification par SMS, et doit donc quitter l'application (minimiser) pour le lire, puis ré-entrer dans l'application (restaurer) pour valider le code.Comment puis-je utiliser mon application Android avec utilisation Branch.io Deeplinking AND support minimiser/reprendre l'application?

j'ai eu ce comportement fonctionne parfaitement avant la mise en œuvre branch.io, et la raison doit faire avec Branch.io nécessitant android:launchMode="singleTask" dans le fichier AndroidManifest.xml (voir here).

<activity 
    android:name="com.yourapp.SplashActivity" 
    android:label="@string/app_name" 
    android:launchMode="singleTask" 
    ... 

Lorsque android:launchMode="singleTask" est retiré, l'utilisateur peut laisser/entrer dans l'application autant qu'ils veulent et reviennent toujours à la même activité qu'ils étaient quand ils ont amoindri l'application. Pourtant, Branch.io profond n'est plus respecté.

CEPENDANT, il semble que ce minimiser/restauration behaivor est pas (?) Possible avec Branch.io est mis en œuvre. Est-ce? Comment puis-je conserver la fonctionnalité de minimisation/restauration de mon application, qui implémente le deepclink de Branch.io?

+0

Donc, lorsque vous avez intégré Branch, quel est le comportement lorsque vous réduisez l'application? La même activité ne s'ouvre-t-elle pas? –

+0

@AmrutaDeshmukh Lorsque Branch.io est intégré correctement (c.-à-d. Lorsque 'android: launchMode =" singleTask "' est inclus dans le manifeste), l'application ** always ** s'ouvre sur l'écran de démarrage. – Brett

+0

en minimisant vous voulez dire juste en appuyant sur le bouton d'accueil à droite et ne fermant pas complètement l'application. correct? J'ai un exemple d'application disponible sur mon compte Github –

Répondre

0

En plus du commentaire d'Amruta je voulais contribuer. Comme singleTask est requis pour une liaison profonde correcte afin d'éviter plusieurs instances de la même activité, notre meilleure solution de contournement/suggestion pour ce problème qui n'a pas encore été mentionné est de créer une activité de liaison profonde transparent. De cette façon, vous pouvez définir une activité transparente jetable à singleTask, init une session à partir de cela -> saisir params -> route en conséquence. Sinon, vous êtes obligé d'ajuster votre flux d'applications principal à notre exigence d'utiliser singleTask. Cela a tendance à être la solution de contournement la plus populaire!