How do I pass parameters to android Intent in new scheme on chrome?

With the new scheme, you can pass arguments as extras to the App, but you must encode the URI as follows:

<a href="intent://whatever/#Intent;scheme=myapp;package=com.what.ever.myapp;S.myextra=mystring;end">Do Whatever</a>

This will pass an extra String called “myextra” with the value “mystring”. Having a look at the Android Code we can see how the extra parameters need to be coded. The “S” at the beginning of the “myextra” parameter defines it as a String. Other types can be:

String => 'S'
Boolean =>'B'
Byte => 'b'
Character => 'c'
Double => 'd'
Float => 'f'
Integer => 'i'
Long => 'l'
Short => 's'

For example, if we want to pass two extra parameters, an Integer and a String, we can do this:

<a href="intent://whatever/#Intent;scheme=myapp;package=com.what.ever.myapp;S.name=Perico%20de%20los%20Palotes;i.age=35;end">Do Whatever</a>

Note that you’ll need to url-encode all the parameters.

In your Android app, you’ll need to accept those extras. In the “onCreate” event of your Activity:

Bundle parametros = getIntent().getExtras();
if (extras != null){
    String name = extras.getString("name");
    Integer age = extras.getInt("age");

    if (name!=null && age!=null)
    {
       //do whatever you have to
       //...
    }
}else{
     //no extras, get over it!!
}

And, of course, add the filter android.intent.category.BROWSABLE in your manifest as shown in this link.

Leave a Comment