views:

2188

answers:

4

Hey guys,

I have an app that will display web pages within a UIWebView. The pages it shows may contain links to other iPhone apps on the App Store.

In a normal browser on a desktop computer, clicking these App Store links would take me through a number of URL redirects and eventually end up opening iTunes and taking me to the page for that App.

Is there a way to ensure that when an App Store link is clicked inside my UIWebView that the App Store app on the iPhone will open and show the app?

What I've been seeing in my tests is that there are several types of links that can result in an App Store page, those being:

  • phobos links - phobos.apple.com/etc etc etc
  • itunes.com/app/appname links
  • referral / affiliate links
  • any that I don't know of

When I open any of these links in a desktop browser they will work and eventually open iTunes. When I open any of these links from within the iPhone the UIWebView goes through a number of redirects and eventually one of two things will happen:

  • The redirects don't work properly and I end up with a page did fail to load method call
  • The redirects work and the iTunes app is opened, a search for the app name is done, and then I get a message from iTunes explaining it can't connect to the store.

The only time I've been able to get the App Store app to open is by using a direct iTunes link to the app without any referral or redirects.

Obviously for referral or affiliate links, I do not want to strip out the referral ID or affiliate ID. I shouldn't deprive them of a referral if it was their link that is clicked.

So any help would be greatly appreciated.

Thanks.

+1  A: 

On my tests, I only got phobos.apple.com links to automatically redirect to the AppStore (without any Safari redirect).

pgb
A: 

If you have not tested this yet on an actual device, I can tell you that the iPhone Simulator has problems with redirecting these links to the App Store (probably because the Simulator doesn't have it). Running you application on the device will yield different behaviors in this specific area, so make sure you're testing it there.

fbrereto
I never test in the simulator... no point really. Always test on the device.
Jasarien
+4  A: 

I found this Technical Q&A from Apple that answers my question:

http://developer.apple.com/iphone/library/qa/qa2008/qa1629.html

The basic gist is this:

phobos.apple.com links constructed properly will redirect directly to the App Store app. itunes.apple.com links must be converted into phobos links. referral/affiliate links must be traversed using NSURLConnection and the final resulting URL will be a phobos link that can be used.

Thanks for your help guys.

Jasarien
A: 

I've been trying to do the same thing. I wanted to place a link to the full version of my app in the free version. I just confirmed that the method used in the document works. ONLY on the actual device. Never trust the simulator!

http://developer.apple.com/iphone/library/qa/qa2008/qa1629.html

Add the stuff in the document above, and call it like this :

NSString *testLink = @"http://phobos.apple.com/WebObjects/MZStore.woa/wa/viewSoftware?id=284417350&mt=8"; 

self.iTunesLink = [NSURL URLWithString:testLink];

[self openReferralURL:iTunesLink];
Matt