{"id":23670065,"url":"https://github.com/lampaa/com.lampa.startapp","last_synced_at":"2025-04-04T20:14:21.274Z","repository":{"id":10840686,"uuid":"13120584","full_name":"lampaa/com.lampa.startapp","owner":"lampaa","description":"Phonegap plugin for check or launch other application in android device.","archived":false,"fork":false,"pushed_at":"2021-03-15T10:23:37.000Z","size":174,"stargazers_count":229,"open_issues_count":45,"forks_count":120,"subscribers_count":19,"default_branch":"master","last_synced_at":"2025-03-28T19:09:33.344Z","etag":null,"topics":["android","java","javascript","phonegap","phonegap-plugin","startapp"],"latest_commit_sha":null,"homepage":"","language":"Java","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/lampaa.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE.md","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null}},"created_at":"2013-09-26T11:34:23.000Z","updated_at":"2025-02-01T10:39:24.000Z","dependencies_parsed_at":"2022-09-02T13:11:04.572Z","dependency_job_id":null,"html_url":"https://github.com/lampaa/com.lampa.startapp","commit_stats":null,"previous_names":[],"tags_count":3,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/lampaa%2Fcom.lampa.startapp","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/lampaa%2Fcom.lampa.startapp/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/lampaa%2Fcom.lampa.startapp/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/lampaa%2Fcom.lampa.startapp/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/lampaa","download_url":"https://codeload.github.com/lampaa/com.lampa.startapp/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":247242680,"owners_count":20907134,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["android","java","javascript","phonegap","phonegap-plugin","startapp"],"created_at":"2024-12-29T09:19:29.386Z","updated_at":"2025-04-04T20:14:21.248Z","avatar_url":"https://github.com/lampaa.png","language":"Java","funding_links":[],"categories":[],"sub_categories":[],"readme":"\n# cordova plugin startapp\n\nPhonegap plugin for check or launch other application, get extras in phonegap app.\n\n\nLast version 6.1.6\n*  Add support java 1.6\n*  Add support java 1.7\n*  Add full support activityForResult, sendBroadcast and RegisterReceiver.\n*  Add types of extras.\n\n# Install\n\n\u003e Install: ```cordova plugin add com.lampa.startapp```\n\u003e \n\u003e Install: ```cordova plugin add https://github.com/lampaa/com.lampa.startapp.git```\n\u003e \n\u003e Delete:  ```cordova plugin rm com.lampa.startapp```\n\u003e \n\u003e Delete previous version:  ```cordova plugin rm org.apache.cordova.startapp```\n\n[Manually installation for Android.](/MANUALLY_INSTALL.md)\n\n\n**NEW!** [Script builder.](http://lampaa.github.io/com.lampa.startapp/index.html) Create script with UI builder.\n\n\n# ANDROID\n\nTo run other application, you need to build data:\n```javascript\nvar sApp = startApp.set({} params [, {} extras]);\n```\n| Param | Description | Default | Values |\n| --- | --- | --- | --- |\n| noParse | Disable find action and category in Intent package | false | Boolean |\n| matchDoubleInString | Match Double type in string extras (usefull for coordinates, prices etc.) | false | Boolean |\n| intent | [Intent(String action)](https://developer.android.com/reference/android/content/Intent.html#Intent%28java.lang.String%29) | null | String |\n| application | [Intent (Context packageContext)](https://developer.android.com/reference/android/content/Intent.html#Intent%28android.content.Context,%20java.lang.Class%3C?%3E%29) | null | String |\n| action | [Intent setAction](http://developer.android.com/reference/android/content/Intent.html#setAction(java.lang.String)) | null | String ||\n| category | [Intent addCategory](http://developer.android.com/reference/android/content/Intent.html#addCategory(java.lang.String)) | null | String |\n| type | [Intent setType](http://developer.android.com/intl/ru/reference/android/content/Intent.html#setType(java.lang.String))  | null | String |\n| package | [Intent setPackage](http://developer.android.com/intl/ru/reference/android/content/Intent.html#setPackage(java.lang.String)) | null | String |\n| uri | [Intent Uri](http://developer.android.com/intl/ru/reference/android/content/Intent.html#Intent(java.lang.String,android.net.Uri)) | null | String |\n| flags | [Intent setFlags](http://developer.android.com/reference/android/content/Intent.html#setFlags(int)) | null | String |\n| component | [Intent setComponent](http://developer.android.com/reference/android/content/Intent.html#setComponent(android.content.ComponentName)) | null |  String |\n| intentstart | set type of start intent  | startActivity | startActivity, startActivityForResult, sendBroadcast |\n\nExtras as a set of key-value:\n```js\n{\n    \"key1\": \"value1\", // String\n    \"key2\": \"value2\", // String\n    \"key3\": 100, // Integer,\n    \"key4\": true // Boolean\n}\n```\n\n_Example_\n\n```javascript\nvar sApp = startApp.set({ /* params */\n\t\"action\":\"ACTION_MAIN\",\n\t\"category\":\"CATEGORY_DEFAULT\",\n\t\"type\":\"text/css\",\n\t\"package\":\"com.lampa.startapp\",\n\t\"uri\":\"file://data/index.html\",\n\t\"flags\":[\"FLAG_ACTIVITY_CLEAR_TOP\",\"FLAG_ACTIVITY_CLEAR_TASK\"],\n\t\"component\": [\"com.app.name\",\"com.app.name.Activity\"],\n\t\"intentstart\":\"startActivity\",\n}, { /* extras */\n\t\"EXTRA_STREAM\":\"extraValue1\",\n\t\"extraKey2\":100500\n});\n```\n\n```startApp.set()``` return object:\n```javascript\nsApp.start(function() { /* success */\n\tconsole.log(\"OK\");\n}, function(error) { /* fail */\n\talert(error);\n}, function() { // optional broadcast and forResult callback\n\tconsole.log(arguments);\n});\n```\nor\n```javascript\nsApp.check(function(values) { /* success */\n\tconsole.log(values);\n}, function(error) { /* fail */\n\talert(error);\n});\n```\nIf success, ```values``` contains data: `versionName`, `packageName`, `versionCode` and `applicationInfo`.\n\nTo get all extra fields use method ```extraFiels```:\n```javascript\nstartApp.extraFields(function(fields) { /* success */\n\tconsole.log(fields);\n}, function() { /* fail */\n\n});\n```\nVariable ```fields``` contains object array, example:\n```javascript\n{\n\t\"extraKey1\":\"extraValue1\",\n\t\"extraKey2\":\"extraValue2\"\n}\n```\n\nTo get one extra field use method ```getExtra```:\n```javascript\nstartApp.getExtra(field, function(value) { /* success */\n\tconsole.log(fields);\n}, function() { /* fail */\n\n});\n```\nVariable ```field``` is a String.\nVariable ```value``` contains String value.\n\nTo has one extra field use method ```extraField```:\n```javascript\nstartApp.hasExtra(field, function() { /* success */\n\tconsole.log(fields);\n}, function() { /* fail */\n\n});\n```\nVariable ```field``` is a String.\n\n# Samples\n\n_Set application as only package name_:\n```js\nvar sApp = startApp.set({\n\t\"application\":\"com.application.name\"\n}).start();\n```\n\n_Set application as intent value and flag ([issue](https://github.com/lampaa/com.lampa.startapp/issues/50))_:\n```js\nvar sApp = startApp.set({\n\t\"intent\": \"com.shazam.android.intent.actions.START_TAGGING\",\n\t\"flags\": [\"FLAG_ACTIVITY_NEW_TASK\"]\n}).start();\n```\n\n_Set application as package and activity_:\n```js\nvar sApp = startApp.set({\n\t\"component\": [\"com.app.name\",\"com.app.name.Activity\"]\n}).start();\n```\n\n_Set application as action, package, type and Uri_:\n```js\nvar sApp = startApp.set({ /* params */\n\t\"action\":\"ACTION_MAIN\",\n\t\"type\":\"text/css\",\n\t\"package\":\"com.lampa.startapp\",\n\t\"uri\":\"file://data/index.html\"\n}).start();\n```\n\n\n_Start application with extra fields_\n\n```js\nvar sApp = startApp.set({ /* params */\n\t\"component\": [\"com.app.name\",\"com.app.name.Activity\"]\n}, { /* extras */\n\t\"extraKey1\":\"extraValue1\",\n\t\"extraKey2\":\"extraValue2\"\n}).start();\n```\n\n_Start listening broadcast_\n\n```js\nvar sApp = startApp.set([\"RECEIVER_NAME\"]);\n\nsApp.receiver(function(compete) { // if receiver is registered\n\t$messages.prepend(\"\u003cdiv\u003eid broadcast: \" + compete + \"\u003c/div\u003e\");\n}, function(error) {\n\t$messages.prepend(\"\u003cdiv class='err'\u003e\" + error + \"\u003c/div\u003e\");\n}, function(action, extras) { // receiver message\n\t$messages.prepend(\"\u003cdiv\u003e\" + action + \", \" + JSON.stringify(extras)  + \"\u003c/div\u003e\");\n});\n``````\n\n_Start application with result_\n\n```js\nvar sApp = startApp.set({\n\t\"action\":\"ACTION_MAIN\",\n\t\"package\":\"com.lampa.startapp\",\n\t\"intentstart\":\"startActivityForResult\",\n});\n\nsApp.start(function(compete) { // if receiver is registered\n\tconsole.log(compete);\n}, function(error) {\n\tconsole.error(error);\n}, function(result, requestCode, resultCode) { // result message\n\t$messages.prepend(\"\u003cdiv\u003e\" + JSON.stringify(result) + \", \" + requestCode + \", \" + resultCode + \"\u003c/div\u003e\");\n});\n```\n\n_Send broadcast_\n```js\nvar sApp = startApp.set({ /* params */\n\t\"action\":\"RECEIVER_NAME\",\n\t\"intentstart\":\"sendBroadcast\",\n\t\"noParse\": true // disable parse action value\n}, {\n\t\"extraKey1\":\"extraValue1\",\n\t\"extraKey2\":\"extraValue2\"\n});\n\nsApp.start(function(compete) {\n\tconsole.log(compete);\n}, function(error) {\n\tconsole.error(error);\n});\n```\n\nExample, call skype:\n```js\nstartApp.set({ /* params */\n\t\"action\": \"ACTION_VIEW\",\n\t\"uri\": \"skype:+79109999999\"\n}).start();\n```\nExample, call phone:\n```js\nstartApp.set({ /* params */\n\t\"action\": \"ACTION_CALL\",\n\t\"uri\": \"tel:+79109999999\"\n}).start();\n```\nExample, call browser:\n```js\nstartApp.set({ /* params */\n\t\"action\": \"ACTION_VIEW\",\n\t\"uri\": \"https://github.com/lampaa\"\n}).start();\n```\nExample, call facebook:\n```js\nstartApp.set({ /* params */\n\t\"action\": \"ACTION_VIEW\",\n\t\"uri\": \"fb://facewebmodal/f?href=https://www.facebook.com/GitHub\"\n}).start();\n```\nExample, call whatsapp:\n```js\nstartApp.set({ /* params */\n\t\"action\": \"ACTION_SEND\",\n\t\"package\": \"com.whatsapp\",\n\t\"type\": \"text/plain\"\n}, {\n\t\"android.intent.extra.TEXT\":\"Text...\"\n}).start();\n```\nExample, call whatsapp chat:\n```js\nstartApp.set({ /* params */\n\t\"action\": \"ACTION_SEND\",\n\t\"package\": \"com.whatsapp\",\n\t\"type\": \"text/plain\",\n\t\"uri\": \"+79123456789\"\n}, {\n\t\"EXTRA_TEXT\":\"Text...\",\n\t\"chat\": true\n}).start();\n```\nExample, call sms:\n```js\nstartApp.set({ /* params */\n\t\"action\": \"ACTION_MAIN\",\n\t\"category\": \"CATEGORY_DEFAULT\",\n\t\"type\": \"vnd.android-dir/mms-sms\"\n}).start();\n```\nExample, play mp4 video:\n```js\nstartApp.set({ /* params */\n\t\"action\": \"ACTION_VIEW\",\n\t\"uri\": \"http://domain.com/videofile.mp4\",\n\t\"type\": \"video/mp4\"\n}).start();\n```\nExample, open contacts book:\n```js\nstartApp.set({ /* params */\n\t\"action\": \"ACTION_PICK\",\n\t\"uri\": \"ContactsContract.Contacts.CONTENT_URI\",\n\t\"intentstart\":\"startActivityForResult\"\n}).start();\n```\nExample, open twitter:\n```js\nstartApp.set({ /* params */\n\t\"application\": \"com.twitter.android\"\n}).start();\n```\nExample, open twitter user:\n```js\nstartApp.set({ /* params */\n\t\"action\": \"ACTION_VIEW\", \n\t\"uri\": \"https://twitter.com/kremlinrussia\"\n}).start();\n```\n\nExample, add alarm to alarm manager: \n```js\nvar sApp = startApp.set({ /* params */\n    \"action\":\"android.intent.action.SET_ALARM\",\n    \"noParse\": true\n}, {\n    \"android.intent.extra.alarm.MESSAGE\":\"New Alarm\",\n    \"android.intent.extra.alarm.HOUR\":17,\n    \"android.intent.extra.alarm.MINUTES\": 30\n});\n\nsApp.start(function(success) {\n    console.log(success);\n}, function(error) {\n    console.error(error);\n});\n```\n\nUse **iOS**\n\n_Set iOS application_\n\n```js\nvar sApp = startApp.set(\"twitter://\");\n```\n\nreturn ```startApp``` object:\n```javascript\nsApp.start(function() { /* success */\n\tconsole.log(\"OK\");\n}, function(error) { /* fail */\n\talert(error);\n});\n```\nor\n```javascript\nsApp.check(function(values) { /* success */\n\tconsole.log(values);\n}, function(error) { /* fail */\n\talert(error);\n});\n```\n\n===========================================\nTags: \n\nCordova start external application.\nAndroid open an external application.\nPhonegap start external application.\nLaunching External Intents Works on Cordova.\nAndroid launch external activities.\nAndroid check app availability.\nAndroid launch application with parameters. \n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Flampaa%2Fcom.lampa.startapp","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Flampaa%2Fcom.lampa.startapp","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Flampaa%2Fcom.lampa.startapp/lists"}