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

Adding Call log entries in Native Call Logs

While adding call logs we can set number in CallLog.Calls.NUMBER field , same for date  and duration. CallLog.Calls.CACHED_NAME will be filled with the cached name in case if the number is already saved in Contacts database. ContentValues values = new ContentValues(); values.put(CallLog.Calls.NUMBER, number); values.put(CallLog.Calls.DATE, System.currentTimeMillis()); values.put(CallLog.Calls.DURATION, 0); values.put(CallLog.Calls.TYPE, CallLog.Calls.OUTGOING_TYPE); //Type of call Outgoing/Incoming/Missed etc values.put(CallLog.Calls.NEW, 1); values.put(CallLog.Calls.CACHED_NAME, ""); values.put(CACHED_NUMBER_TYPE, 0); values.put(CACHED_NUMBER_LABEL, ""); this.getContentResolver().insert(CallLog.Calls.CONTENT_URI, values); Below Permissions are required to add call logs , add it in Manifest file, <uses-permission android:name="android.permission.WRITE_CALL_LOG"></uses-permission> <uses-permission android:name="android.perm...