2017-01-27 9 views
0

Я использую глубокую ссылку на firebase для Android, но она не работает должным образом в фоновом режиме. Вот мой код, который я используюFirebase Deep link не работает в фоновом режиме в Android

mGoogleApiClient = new GoogleApiClient.Builder(this) 
      .enableAutoManage(SplashActivity.this, SplashActivity.this) 
      .addApi(AppInvite.API) 
      .build(); 
boolean autoLaunchDeepLink = false; 
AppInvite.AppInviteApi.getInvitation(mGoogleApiClient, this, autoLaunchDeepLink) 
     .setResultCallback(
       new ResultCallback<AppInviteInvitationResult>() { 
        @Override 
        public void onResult(@NonNull AppInviteInvitationResult result) { 
}}} 

Это работает, когда приложения не в фоновом режиме, но если приложение в фоновом режиме это открыть приложение, но onResult метода ResultCallback не вызывает. Вот почему я не могу перемещаться по экрану приложения в соответствии с требованиями.

+0

Неужели кому-то удалось обойти это? Я попытался использовать: 'android: pathPrefix ="/gizmos "' и 'android: pathPattern =". * ", Однако мне не удалось его решить. –

+0

необходимо подождать, чтобы вызвать обратный вызов из-за состояния гонки. не могу понять, как получить обратный вызов для вызова после того, как ive получил токен от моего api. –

+0

Вы решили? У меня такая же проблема. –

ответ

0

Где вы разместили свой код AppInvite.AppInviteApi.getInvitation()? Он должен находится в Activity, который определен в вашем AndroidManifest с соответствующим Intent-Filter:

<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:host="example.com" android:scheme="http"/> 
    <data android:host="example.com" android:scheme="https"/> 
</intent-filter> 
+0

Я уже поместил код, он работает, если приложение не находится в фоновом режиме. Но если экземпляр приложения находится в фоновом режиме, приложение работает неправильно. onResult метод ResultCallback не вызван. Но на создание nethod называется деятельностью, где я записал код. – Shivang

+0

Метод находится в методе onCreate(). – Shivang

0

я обнаружил, что причина, почему это происходит потому, что был Deeplink в настоящее время обрабатываются в первую деятельности, которая запускается. На самом деле для этого, чтобы работать, он должен быть обработан во второй деятельности, как это:

<activity> 
     android:name=".activity.FirstActivity" 
     <intent-filter> 
      <action android:name="android.intent.action.MAIN" /> 
      <category android:name="android.intent.category.LAUNCHER" /> 
     </intent-filter> 
    </activity> 

    <activity> 
     android:name=".activity.SecondActivity" 
     <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="https" 
        android:host="www.example.com" 
        android:pathPrefix="/extra"/> 
     </intent-filter> 
    </activity> 

Это работает для меня.

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

  • Нет связанных вопросов^_^