BranchMetrics / capacitor-branch-deep-links

Capacitor plugin for branch.io deep links
MIT License
32 stars 44 forks source link

Android > Error: Session initialization already happened > No deeplink referringParams #50

Open KirstenStake opened 2 years ago

KirstenStake commented 2 years ago

Problem

When sending a push notification (in this case via Braze) which hold a deep link on click, if the app in the background, it only opens the application but does not hold any of the referringParams data and shows an error of:

"Warning. Session initialization already happened. To force a new session, set intent extra, "branch_force_new_session", to true."

Screen Shot 2021-10-29 at 1 00 12 pm

If you leave the app to go back into background, then foreground it again, it suddenly has the branch data within the object and works as intended. It is on the first push click and app open (if the app has already been opened and is in the background) that it is empty and fails.

Platform

Android

Code

public class MainActivity extends BridgeActivity {
  @Override
  public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);

    // Additional plugins you've installed go here
    // Ex: registerPlugin(TotallyAwesomePlugin.class);
    registerPlugin(Contacts.class);
    registerPlugin(NativeBiometric.class);
    registerPlugin(BranchDeepLinks.class);
  }

  @Override
  protected void onNewIntent(Intent intent) {
    // super.onNewIntent(intent);
    // this.setIntent(intent);

    this.setIntent(intent);
    super.onNewIntent(intent);

    // handles warning:"session initialization already happened"
    if(intent != null) {
      intent.putExtra("branch_force_new_session", true);
    }
  }
}
public class CustomApplicationClass extends MultiDexApplication {
    @Override
    public void onCreate() {
        super.onCreate();
        // Branch logging for debugging
        Branch.enableLogging();

        if (SDK_INT >= 24) {
          UserManager um = getApplicationContext().getSystemService(UserManager.class);
          if (um == null || !um.isUserUnlocked()) return;
        }

        // Branch object initialization
        Branch.getAutoInstance(this);
    }

    @Override
    protected void attachBaseContext(Context base) {
        super.attachBaseContext(base);
        MultiDex.install(this);
    }
}

Environment setup

webuniverseio commented 2 years ago

I run into the same problem

KirstenStake commented 1 year ago

This issue still persists. It is especially apparent with in app popups and trying to deeplink from them. Screen Shot 2022-06-30 at 5 27 10 pm

gdeluna-branch commented 1 year ago

Acknowledged- we're currently designing some possible fixes for these types of errors/inconsistencies across plugins. Will keep you posted.

Vishal-Isharani commented 1 year ago

I'm also facing the same issue.

JJSwigut commented 1 year ago

Facing the same issue, but had a question: Is there a way to use the Branch SDK to manually parse deeplink in the form of "https://dingo.app.link/Iy5o5phXYxb" without going through the BranchReferralInitListener?

JJSwigut commented 1 year ago

@gdeluna-branch I've discovered that this fixes this problem for me and haven't noticed any issues. Are there any unintended consequences to just including that extra preemptively?

HendryZheng commented 1 year ago

Hi ! Is there any updates to this? I am facing the same issue and couldn't solve with all above suggested solution. Please help me.

drakedeatonuk commented 1 month ago

any update?...

qliqdev commented 2 weeks ago

Hi, @gdeluna-branch

any updates on this bug?