2017-02-17 5 views
1

я создал простое приложение с одним Activity и манифеста, как это:Android Branch IO глубокая ссылка не открывает мое приложение

<?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> 

В моей key_live_XXXXXXXXXXX я наклеенные мои Щитки ключ жить.

Тогда в моем приложении я добавил следующее:

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

Мои MainActivity имеет следующие строки кода:

@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); 
} 

Моя заявка схема URI является branchiotestapp://, которую я понял, это когда пользователь нажимает ссылку с эта схема должна открыть мое приложение. Затем я создал простой HTML веб-страницу с этим кодом:

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

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

Когда я открываю этот HTML с моим браузер телефона и clickt к этой ссылке, мой андроид приложение не открывается, даже если он установлен

Почему это происходит? Не понял ли я, как работает branch.io?

ответ

2

Проблема здесь - это ссылка, которую вы помещаете на веб-страницу.

При использовании Branch вы не создаете свои собственные строки намерений: вы используете ссылки Branch. Вы можете создать ссылки филиала на панели управления вашего приложения на странице маркетинга (здесь: https://dashboard.branch.io/marketing); в вашем мобильном приложении, используя вызовы Branch SDK; или путем добавления параметров запроса к домену связующего звена (который можно найти в нижней части страницы «Параметры связи» на приборной панели, здесь: https://dashboard.branch.io/settings/link). Полное описание различных методов можно найти здесь: https://dev.branch.io/getting-started/creating-links/overview/

Что касается конкретной строки намерения, которую вы разместили на своей веб-странице, вы не определили какой-либо фильтр намерения или активность для обработки URI «mysite.com» дорожка. Замена этого пути URI на «открытое» может заставить ссылку работать, но я бы рекомендовал создавать ссылки Branch как лучший подход здесь.

Смежные вопросы