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...

Ways to define Singleton Classes

Singleton classes comes under "Creational design pattern", Singleton pattern restricts from creating multiple instances of the class,and ensure that only one object should be available in the JVM, there are different ways to implement singleton classes as below :- Ways to define Singleton classes :- 1. By defining the singleton class object as static final variable, this is known as early initialization of singleton object. public class SingletoneClassExample{ Private static final instance = new SingletoneClassExample(); // Define private constructor to avoid other classes from creating instance private SingletoneClassExample(){ } public static SingletoneClassExample getInstance(){         return instance;   } } By creating singleton class using above method the class object will be created at class loading itself, so if application is not using this class still the object will be created. 2. Define singleton class object on method call public clas...

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...