苹果公司在《从 iPhone 应用程序启动 App Store http://developer.apple.com/library/ios/#qa/qa1629/_index.html“如何建立一个到应用商店的联属链接并在后台处理重定向,这样就不会惹恼用户。但最好根本没有重定向。我似乎记得看到过一种方法那个,但现在我在任何地方都找不到它。
是否可以在不进行任何重定向的情况下建立从 iOS 应用程序到应用程序商店的联属链接?
编辑:为了澄清,我说的是 Linkshare 附属链接。
编辑2:我越来越接近了。我有这个链接,是我直接从 Linkshare 的“文本链接”页面获取的。当使用下面的 k1th 技巧时,在 iPad 上无需任何重定向即可工作,但在 iPod touch [可能还有 iPhone] 上仍然有一个重定向。我推测重定向可能是从热门 iPad 应用程序切换到热门 iPhone 应用程序,但我不确定这一点。
是的,参数中可能有斜杠(那是因为它是斜杠afterURL 参数部分开头的问号。
关于跳过 Mobile Safari 处理附属链接:
您可以设置一个隐藏的 UIWebView 来处理重定向,也可以自己在 URL 加载系统中完成所有操作。
这是一个隐藏的 WebView:
NSURLRequest *r = [NSURLRequest requestWithURL:[NSURL URLWithString:@"http://click.linksynergy.com/fs-bin/click?id=sf2bW7QX/qU&offerid=146261.431296703&type=2&subid=0"]];
testWebView = [[UIWebView alloc] initWithFrame:CGRectMake(0, 0, 10, 10)];
testWebView.hidden = YES;
testWebView.delegate = self;
[testWebView loadRequest:r];
代表:
#pragma mark - UIWebViewDelegate
- (BOOL)webView:(UIWebView *)webView shouldStartLoadWithRequest:(NSURLRequest *)request navigationType:(UIWebViewNavigationType)navigationType {
if ([request.URL.scheme isEqualToString:@"itms"] &&
[[UIApplication sharedApplication] canOpenURL:request.URL]) {
[[UIApplication sharedApplication] openURL:request.URL];
return NO;
}
return YES; // go on redirecting
}
testWebView
需要是一个实例变量并且视图控制器本身需要是一个<UIWebViewDelegate>
。您还需要将 webview delegate 设置为 nil 某处(例如在-dealloc
)
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)