7

I'm wanting to open up another application on my ipad via a button press in Unity. I know normally I would use Application.OpenURL() on my button press, but I'm unsure as to what to put in the brackets. This is an application already on the iPad and isn't one I've created.

Has anyone ever done this before? Could you possibly point me in the right direction so I can get this to work? Is it even possible?

JeanLuc
  • 4,783
  • 1
  • 33
  • 47
N0xus
  • 2,674
  • 12
  • 65
  • 126
  • Is there also a way to start the same iOS application from unity? I mean there is an iOS application (with appdelegate/controllers and all classes) that is linked to unity as iOS plugin (built as static library). And now I'm trying to launch this app from the unity itself. How to achieve that? – vir us Oct 31 '14 at 20:15

1 Answers1

14

The other application needs to support that behaviour, by defining a custom url scheme. The developer needs add an URL Type i.e. "awesomeapp" in Xcode under Targets > Info > URL Types, if he does not support it you can not open the app.

In your Unity app just call

Application.OpenURL("awesomeapp://").

see also this stackoverflow entry: Launch an app from within another (iPhone)

UPDATE 1: how to find a custom URL scheme of 3rd party app

  1. Download the purchased app via iTunes on OSX
  2. Go to the [AppName].ipa file on your filesystem
  3. Rename it to a [AppName].zip so that you can extract it
  4. Go to "[AppName]/Payload/[AppName].app"
  5. Right click and select "Show Package Contents"
  6. Open the Info.plist in Xcode and look for the key URL types or in a text editor for CFBundleURLTypes.

UPDATE 2: iOS 9

For iOS 9 you must whitelist that application in the Info.plist of the Xcode Project:

<key>LSApplicationQueriesSchemes</key>
<array>
     <string>awesomeapp</string>
</array>
Community
  • 1
  • 1
JeanLuc
  • 4,783
  • 1
  • 33
  • 47