10

I am developing a PhoneGap App, All what I need is to open an external application.

e.g. my app namespace is com.demo.app1 and I need to open the com.demo.app2 application, Is this feasible ?

  • I am using PhoneGap 3.3
  • I found that there is many versions of the WebIntent plugin
  • An example may help :)

Thanks

amd
  • 20,637
  • 6
  • 49
  • 67

4 Answers4

7

You can crea a plugin with this java code:

Intent LaunchIntent = this.cordova.getActivity().getPackageManager().getLaunchIntentForPackage("com.demo.app2");
this.cordova.getActivity().startActivity(LaunchIntent);

or try any of this 2 plugins for launching apps

https://github.com/lampaa/org.apache.cordova.startapp

https://github.com/dmedvinsky/cordova-startapp

jcesarmobile
  • 51,328
  • 11
  • 132
  • 176
  • Many Thanks!, this https://github.com/lampaa/org.apache.cordova.startapp worked for me on PhoneGap 3.3 – amd Mar 04 '14 at 13:52
3

Finally found my old code of when I was using webintent :

   CDV.WEBINTENT.launchActivity("com.demo.app1",
            function() {
                console.log("Activity started");
            },
            function() {
                console.log("Error starting activity");
            }
    );

There are two different gits for webintent referenced in phonegap build for phonegap 3.x, no idea what the differences are (and the first one is the one I was using) :

And an other usefull plugin is the webavailability plugin that lets you know if the other app is installed before you try to launch it : https://github.com/ohh2ahh/AppAvailability.git

I stopped using webintent because I needed to be able to switch to an app if it was already started and not relanch it.

EDIT: oops again, launchactivity was a function I added to the plugin... will check later how I was doing before this.

QuickFix
  • 11,661
  • 2
  • 38
  • 50
  • thanks, but it seems this does not support phonegap 3.3 – amd Mar 04 '14 at 11:54
  • oops sorry a little to fast on pasting a link. I remember I've used a plugin before I had to build my own but can't remember the url I was using. This one seems to be compatible with 3.x : https://github.com/lampaa/org.apache.cordova.startapp – QuickFix Mar 04 '14 at 12:13
1

In iOS to open any application you need to know which URLs schemes supported by this app.

For example, you can open email-writer by url like "mailto:aaa@bbb.com". But the thing is in application you can declare your own scheme. For example in App1 you can declare scheme like "my-app1-scheme". And in your second app you will need to open URL "my-app1-scheme://" and your App1 will be opened.

And I just found this plugin that allows you to do this in simpler way: https://github.com/EddyVerbruggen/LaunchMyApp-PhoneGap-Plugin

Vanger
  • 692
  • 4
  • 10
1

Finally, I implemented my own plugin that offer the following:

  • getUniqueDeviceId (return a unique device ID)
  • openApp (open an installed app, and fallback to the store if available)
  • openStore (open the store on a specific app)

http://ahmad-moussawi.github.io/pgutils/

Please feel free to contribute or suggest any other feature.

amd
  • 20,637
  • 6
  • 49
  • 67
  • @jcesarmobile, what I have added, the iOS support, in addition to the openStore fallback. – amd Mar 26 '15 at 13:15