I created an intent filter to one of my activities in order to be able to launch it via deep linking :
<activity
android:name="com.myapp.activities.LoginActivity"
android:label="@string/app_name">
<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="myserver.com"
android:pathPrefix="/product/"
android:scheme="https" />
<data
android:host="www.myserver.com"
android:pathPrefix="/product/"
android:scheme="https" />
</intent-filter>
</activity>
Mostly everything works ok. When im clicking these links from any email client, or from whatsapp messages, or from tweets, picking any browser in the app chooser dialog, it identifies my intent filter and opens the right activity. Which means my intent filter was defined ok.
But... there are some cases where i need to click these links from the device's calendar or from HTMLViewer. In these cases my app is not opened when i select the stock browser. It just opens the browser with the URL address. This just happens when i select the device's stock browser. When i select a different browser (e.g Chrome) the app is opened correctly. Any idea why is that ? Or how can i enable deep linking to work in all cases ?
2 important notes :
Im testing this for now on Galaxy S3. I know the browser on Galaxy devices is not considered "stock" per se. Still i would like to find a solution that will work on all devices.
The url address for the deep linking is an actual address that runs a javascript on the browser side. For cases where the app is not installed on the user's device it redirects him to the play store. Im saying that because im also open to server side solutions if they might solve this issue. I saw this Question but the answer there doesn't work for me.
Anyway, I really appreciate any help from the SO community. This has been a pain in the ass for me (and im sure for others).
Thanks.