Im trying to get the URL that was clicked in order to open the app. Im just having trouble finding where I can get that information. I have a manifest which opens app when clicked. The link would be "http://host.com/file.html?param=1¶m2=2" which Im trying to give to the app to handle.
<intent-filter>
<data android:scheme="http"
android:host="host.com"
android:pathPrefix="/file.html" />
<action android:name="android.intent.action.VIEW" />
<category android:name="android.intent.category.BROWSABLE" />
<category android:name="android.intent.category.DEFAULT" />
</intent-filter>
EDIT
@Override
protected void onCreate(Bundle savedInstanceState)
{
super.onCreate(savedInstanceState);
Intent intent = getIntent();
Uri uri = intent.getData();
try {
url = new URL(uri.getScheme(), uri.getHost(), uri.getPath());
} catch (MalformedURLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
You should be able to get the intent data in your activity with the following:
Uri uri = this.getIntent().getData();
URL url = new URL(uri.getScheme(), uri.getHost(), uri.getPath());
Basically once you obtain your Uri (that is, getIntent().getData()
), you can read your complete url as uri.toString()
. Assuming your android:host
is valid and set, you can also get actual query data by calling uri.getEncodedQuery()
.
Here is more details from working sample, if needed:
<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="boo.acme.com"
android:scheme="http" />
</intent-filter>
Uri uri = this.getIntent().getData();
uri.toString()
produces "http://boo.acme.com/?ll=43.455095,44.177416" and uri.getEncodedQuery()
produces "ll=43.455095,44.177416".Hope that helps!
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With