The closest I could find was this question here. but it doesnt quite cover the problem im having.
I have deep links in my app setup to use /app as the path prefix. The problem I'm having is that links like http://example.com/upgrade
are also trying to open in my app even though it doesn't have /app anywhere in the url. I understand you cant exclude urls specified by the prefix, but isn't the whole point of path prefix to include only those urls?
basically I want links like these to deep link:
http://example.com/app/home
http://example.com/app/specials
but not links like these:
http://exaple.com/
http://example.com/login
and here is what I have in my manifest:
<data android:scheme="http"
android:host="example.com"
android:pathPrefix="/app"/>
Edit 1
also found this link but i dont have any empty prefixes, only ones with just a slash "/"
Edit 2
The url that was triggering it was http://example.com/upgrade.php?app=1&method=1&uid=1
, I wasn't sure if app after the ? would also trigger it so I changed the prefix to /application but that also didn't work, its still triggering them.
Edit 3
here are the other deep link data tags in the manifest:
profile activity
<data android:scheme="myapp"
android:host="profile"
android:pathPrefix="/"/>
login/signup activity
<data android:scheme="myapp"
android:host="login"
android:pathPrefix="/signup"/>
main activity
<data android:scheme="myapp"
android:host="main"
android:pathPrefix="/"/>
<data android:scheme="http"
android:host="test.example.com"
android:pathPrefix="/app"/>
<data android:scheme="http"
android:host="live.example.com"
android:pathPrefix="/app"/>
Edit 4
This is getting more and more confusing, if I remove the data tag with myapp as the scheme from the activity (or if i remove the pathPrefix from everything with a prefix of "/") it no longer triggers the deep links from the web urls, even if they have /app in them.
I figured it out, It seems like the data tags sort of bleed into one another, so the prefix of "/" on the data with scheme "example" was also applying to all of the schemes in the other data tags. I just had to use separate Intent filters for my custom scheme deep links and the url deep links like so:
<activity android:name=".MainActivity">
<intent-filter>
<action android:name="android.intent.action.VIEW" />
<category android:name="android.intent.category.DEFAULT" />
<category android:name="android.intent.category.BROWSABLE" />
<!-- must start with http://test.example.com/app -->
<!-- http://test.example.com/ won't work since prefix / is in a different intent-filter -->
<data android:scheme="http"
android:host="test.example.com"
android:pathPrefix="/app"/>
<!-- must start with http://live.example.com/app -->
<data android:scheme="http"
android:host="live.example.com"
android:pathPrefix="/app"/>
</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" />
<!-- must start with example://main/ -->
<!-- http://test.example.com/ won't work since http is in a different intent-filter -->
<data android:scheme="example"
android:host="main"
android:pathPrefix="/"/>
</intent-filter>
</activity>