Apple在“
Launching the App Store from an iPhone application”中解释了如何在应用程序商店中建立联盟链接并在后台处理重定向,这样就不会惹恼用户.但最好不要重定向.我似乎记得有办法做到这一点,但现在我无法在任何地方找到它.
是否可以在没有任何重定向的情况下从iOS应用程序到应用程序商店建立联盟链接?
编辑:澄清一下,我说的是Linkshare会员链接.
编辑2:我越来越近了.我有这个链接,我直接抓住了linkshare的“文本链接”页面.当在下面使用k1th的技巧时,在iPad上没有任何重定向的情况下工作,但仍然在iPod touch上有一个重定向[并且可能是iPhone].我推测重定向可能是从顶级iPad应用程序切换到顶级iPhone应用程序,但我不确定.
http://click.linksynergy.com/fs-bin/click?id=sf2bW7QX/qU&offerid=146261.10005745&type=3&subid=0
解决方法
我认为你不想重定向的原因是
>避免Safari浏览器弹出
>避免App Store应用程序内部的重定向
我更喜欢k1th的解决方案,但是失败了(我想它可能会失败#2),我认为问题是第一个itms链接不是“最终”链接.一种解决方案是简单地对URL进行硬编码(或通过其他方式提供):
- (BOOL)webView:(UIWebView *)webView shouldStartLoadWithRequest:(NSURLRequest *)request navigationType:(UIWebViewNavigationType)navigationType { NSURL myAppUrl = .... if ([request.URL.scheme isEqualToString:@"itms"] && [[UIApplication sharedApplication] canopenURL:myAppURL]) { [[UIApplication sharedApplication] openURL:myAppURL]; return NO; } return YES; // go on redirecting }
更清晰的解决方案是从request.URL中的itms链接读取应用程序ID,并使用将直接带到您的应用程序的模式格式化新URL.