Skip to main content

Launching Android application from web browser

Steps to follow :-

1. Define an activity in android manifest file with below intent filters :-

   <activity
            android:name=".LaunchActivityFromBrowser"
            android:configChanges="orientation|keyboardHidden|fontScale|locale|layoutDirection|screenSize|screenLayout|mnc|mcc|navigation"
            android:launchMode="singleTask"
            android:screenOrientation="portrait"
            android:theme="@android:style/Theme.Black.NoTitleBar" >
            <intent-filter>
               <action android:name="android.intent.action.VIEW" />
                <category android:name="android.intent.category.DEFAULT" />
                 <action android:name="customAction" />
                <category android:name="android.intent.category.BROWSABLE" />
            </intent-filter>
        </activity>

adding CATEGORY_BROWSABLE means "The activity can be invoked by the browser."

2. Now from the web browser invoke below link,

<a href="intent:#Intent;action=customAction;S.Name="XYZ";end">click to Launch "your app name"</a>

3. Once you invoke the link your activity will be launched with intent having extra as Name="XYZ".

4. You can send data as extras in the  intent for different data types as below :-

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

5. If you have defined scheme and host for the activity as below :-

  <activity
            android:name=".LaunchActivityFromBrowser"
            android:configChanges="orientation|keyboardHidden|fontScale|locale|layoutDirection|screenSize|screenLayout|mnc|mcc|navigation"
            android:launchMode="singleTask"
            android:screenOrientation="portrait"
            android:theme="@android:style/Theme.Black.NoTitleBar" >
            <intent-filter>
                <action android:name="android.intent.action.VIEW" />
                <category android:name="android.intent.category.DEFAULT" />
                 <action android:name="customAction" />
                <category android:name="android.intent.category.BROWSABLE" />
                <data android:host="test.example.com" android:scheme="http"/>
            </intent-filter>
        </activity>
     
   then use link as below ,
    <a href="intent://test.example.com/#Intent;scheme=http;action=customAction;S.Name="XYZ";end">click to Launch "your app name"</a>

Thanks for reading !! :)

Comments

Popular posts from this blog

Launch an Android application on Bootup

If you want to start an android application on device restarts, you need to listen for BOOT_COMPLETED broadcast in the manifest file and launch the Launcher activity in onreceive of BOOT_COMPLETED broadcast receiver. Follow below steps to launch activity on device boot up :- 1. Register for Boot completed receiver in Android Manifest file. Add below Permission to receive BOOT_COMPLETED broadcast, <uses-permission android:name="android.permission.RECEIVE_BOOT_COMPLETED" /> Register for Boot completed broadcast receiver , <receiver android:name="AppAutostartReceiver" android:enabled="true" > <intent-filter> <action android:name="android.intent.action.BOOT_COMPLETED" /> </intent-filter> </receiver> 2. Add custom Broadcast receiver in the application, public class AppAutostartReceiver extends BroadcastReceiver { @Override public void onReceive(Context cont...

Working with Android Shared Preferences

          Shared preferences allows android application to save data in the form of "Key-Value" pair, shared preferences will be an , XML file which will be stored in applications internal storage space under " shared_prefs " folder under data/data/(package name of the application) . Shared Preferences won't clear data after "force close" of an application, it will get cleared only in case of user clears the application data (under settings -> apps -> clear Data) or uninstall an application. Shared preferences can be edited using SharedPreferences.Editor class. APIs to access shared preference below, getDefaultSharedPreferences()  :- Return default shared preference file which is used by PrefrenceManager in the given context. getSharedPreferences(String my_prf_name, int mode) :- Returns shared preference file of the given name. Below are  sample code snippets, 1. Saving data in to the shared preferences, //Retrieve shared prefere...