Tricks to get Deep Linking to work?

Just updated to SAB 6.1. Starting to play around with deep linking, though not extensively yet.

When trying the URL option, when I click the link, it wants to open my web browser, not the SAB app. Does it need to go to the website first and then it will redirect to the app? Or should the phone somehow know to open the URL in the app?

When trying the custom URI option, the link I created isn’t recognized as a link so I can’t test if it will open the app.

Any input appreciated!

1 Like

For the URL, I would not make it the same as any existing web site URL. Make it something different so the phone has to think twice about the link.
If it is an existing URL it just goes to that page in a browser or at least error “page not found” for that base URL.
If it is not a real URL it asks me what I want to open the link with and one option is the relevant Bible app.

On my phones I can’t get the URI to work at all. This seems phone specific.

I am using Deferred Deep Linking option using Branch.io and enabled “Enable App links” option under Link Settings in Branch.io

Sample URL - http://mjsbib.app.link/LUK.8.16

Will post detailed instructions for that soon.

You mentioned posting detailed instructions for what you’ve set up. I’d be interested to see them if you have them typed up.

I also tried the deep linking, URI flavour. Mine looks like this in the SAB:

Lʊkaasɩ://

I then read up on deep linking on
https://developer.android.com/training/app-links/deep-linking

and did this test:
adb shell am start -W -a android.intent.action.VIEW -d "Lʊkaasɩ://LUK.2.1" org.lingobenin.blo.luk

which returned this:
Starting: Intent { act=android.intent.action.VIEW dat=Lʊkaasɩ://LUK.2.1 pkg=org.lingobenin.blo.luk }
Error: Activity not started, unable to resolve Intent { act=android.intent.action.VIEW dat=Lʊkaasɩ://LUK.2.1 flg=0x10000000 pkg=org.lingobenin.blo.luk }

I would suggest that the documentation needs a bit more practical detail. I tried sending this link to the phone with the app via WhatsApp, but got no clickeable link, so the entire phone seems to be unaware of the deep link:
Lʊkaasɩ://LUK.2.1

Do we need to reboot a phone after installing a deep-link-enabled scripture app?
Do we need to send those links by e-mail?
Are we missing some steps?

The feature is awesome, once it works; we want to invite people to install our new app and then read the Christmas story, so this is urgent, app to be published in a few days.

We will not use the deferred links approach and will not create a Branch account; we hope to have simple deep links via WhatsApp or e-mail or on some web-page.

Thanks for any pointers or example code you can provide.

Hello @lasnider

I have made a copy of the SAB guidelines for Deep linking and added screenshots, and highlighted in RED what I have done additionally to get the deferred deep links work correctly for me. See below link :

I am not sure about the pros and cons for enabling App signing in Google Play Console.

See https://play.google.com/store/apps/details?id=org.fcbh.mjsbib.malayalambible.biblica.mcv as a sample app with deferred deep linking.

Clicking below links will either install the app for you, or take you directly to that reference

https://mjsbib.app.link/MAT.28.20

https://mjsbib.app.link/?ref=JHN.3.16

Any specific reason you needed to encrypt your key? Or was that required in the steps for using Branch.io?

Both @Martin’s and @jkurian’s responses reflect some pretty technical details and hoops to get Deep Linking to work. I agree with @Martin that hopefully there can be more practical details added to the documentation in the future.

Looking forward to using the deep linking features in the future.

I did that in order to get the SHA256 Cert Fingerprints for the app to be included in Link settings, so that I can bypass the app link opening in web browser first then redirecting to the app.

Starting with Android 6.0 (API level 23) and higher allow an app to designate itself as the default handler of a given type of link. App Links will open URLs directly into an app, rather than the usual Link -> Browser -> App handoff cycle. This requires some set up, but Branch.io does that if we provide the sha256_cert_fingerprints.

1 Like

Idea: Is it possible, that in SAB the “Minimum Android Platform” and our choice (for example we selected "Android 5.0 (API 21)) determines whether deep linking can work or not?

Google keeps nagging in the Play Console that we should upload App-bundles, but a developer of SAB has explained to us that for the moment this is not an option (and why not). So maybe SAB is creating apps which can only present features according to the “lowest element in the package”.

This is just a theory. Yes, we are lay people - and we are so glad, that we do not need to program actual Android apps to publish our Scripture portions. We love SAB and RAB. Still, the more we understand what happens under the hood, the better we can use the SAB.

So please slash my theories and let us know what really happens; thank you.

1 Like