2017-02-17 1 views
1

J'ai créé l'application simple avec un Activity et manifeste comme ceci:Branch Android IO lien profond ne pas ouvrir ma demande

<?xml version="1.0" encoding="utf-8"?> 
<manifest xmlns:android="http://schemas.android.com/apk/res/android" 
    package="kz.ant.branchio"> 

    <uses-permission android:name="android.permission.INTERNET" /> 

    <application 
     android:allowBackup="true" 
     android:icon="@mipmap/ic_launcher" 
     android:label="@string/app_name" 
     android:supportsRtl="true" 
     android:theme="@style/AppTheme" 
     android:name=".MyApp"> 

     <meta-data android:name="io.branch.sdk.BranchKey" android:value="key_live_XXXXXXXXXXX" /> 

     <activity android:name=".MainActivity"> 
      <intent-filter> 
       <action android:name="android.intent.action.MAIN" /> 

       <category android:name="android.intent.category.LAUNCHER" /> 
      </intent-filter> 

      <intent-filter> 
       <data android:scheme="branchiotestapp" android:host="open" /> 
       <action android:name="android.intent.action.VIEW" /> 
       <category android:name="android.intent.category.DEFAULT" /> 
       <category android:name="android.intent.category.BROWSABLE" /> 
      </intent-filter> 
     </activity> 

     <receiver android:name="io.branch.referral.InstallListener" android:exported="true"> 
      <intent-filter> 
       <action android:name="com.android.vending.INSTALL_REFERRER" /> 
      </intent-filter> 
     </receiver> 

    </application> 

</manifest> 

Dans mon key_live_XXXXXXXXXXX j'ai collé mes tableaux de bord clés en direct.

Puis dans ma demande, j'ai ajouté ceci:

public class MyApp extends Application { 
    @Override 
    public void onCreate() { 
     super.onCreate(); 
     Branch.getAutoInstance(this); 
    } 
} 

Mon MainActivity a ces lignes de code:

@Override 
protected void onStart() { 
    super.onStart(); 

    Branch branch = Branch.getInstance(); 
    branch.initSession(new Branch.BranchReferralInitListener(){ 
     @Override 
     public void onInitFinished(JSONObject referringParams, BranchError error) { 
      if (error == null) { 
       // params are the deep linked params associated with the link that the user clicked -> was re-directed to this app 
       // params will be empty if no data found 
       // ... insert custom logic here ... 
      } else { 
       Log.i("MyApp", error.getMessage()); 
      } 
     } 
    }, this.getIntent().getData(), this); 
} 

@Override 
public void onNewIntent(Intent intent) { 
    this.setIntent(intent); 
} 

Mon application URI régime est branchiotestapp:// que je compris est lorsque l'utilisateur clique un lien avec ce régime, il devrait ouvrir mon application. Ensuite, je l'ai créé la page web HTML simple avec ce code:

<html> 
    <head> 
     <title>Test</title> 
    </head> 

    <body> 
     <a href="branchiotestapp://mysite.com">CLICK</a> 
    </body> 
</html> 

Quand j'ouvre ce code HTML avec mon navigateur de votre téléphone et clickt à ce lien, mon application android NE PAS OUVRIR même si elle est installée

Pourquoi cela se produit-il? Ai-je mal compris comment fonctionne branch.io?

Répondre

2

Le problème ici est le lien que vous mettez sur la page Web. Lorsque vous utilisez Branch, vous ne construisez pas vos propres chaînes d'intention: vous utilisez des liens de branche. Vous pouvez créer des liens de branche à partir du tableau de bord de votre application, sur la page Marketing (ici: https://dashboard.branch.io/marketing); au sein de votre application mobile en utilisant les appels SDK de la branche; ou en ajoutant des paramètres de requête à votre domaine de lien de branche (qui se trouve en bas de la page Paramètres de lien sur le tableau de bord, ici: https://dashboard.branch.io/settings/link). Vous trouverez une description complète des différentes méthodes ici: https://dev.branch.io/getting-started/creating-links/overview/

En ce qui concerne la chaîne d'intention spécifique que vous avez placée sur votre page Web, vous n'avez défini aucun filtre d'intention ni aucune activité pour gérer l'URI «mysite.com». chemin. Le remplacement de ce chemin URI par "open" peut faire fonctionner le lien, mais je recommanderais de créer des liens de branche comme meilleure approche ici.