在应用程序中嵌入智能URL

时间:2011-10-25 21:53:13

标签: iphone objective-c

我想在iPhone应用程序中嵌入一个URL,将用户带到登录页面,稍后我可以将该URL重定向到iTunes App链接一旦可用,所有这些都不再重新提交应用程序以供审批。这可能吗?

由于

2 个答案:

答案 0 :(得分:0)

是。使用openURL: UIApplication方法打开您的着陆页网址。如果要将其换出,请使用您喜欢的服务器端语言执行301或302重定向,具体取决于重定向是否为永久性。

话虽如此,如果你想做的就是指导人们对应用程序或类似的东西进行评级,你不需要换掉它;应用程序ID是构建URL所需的全部内容,iTunes Connect会在您上载二进制文件之前注册应用程序。

答案 1 :(得分:0)

您可以使用短URL或任何其他带重定向的URL,然后在您的代码中拦截重定向,以避免在没有必要时打开Safari:

创建NSURLConnection

NSURL *shortURL = [NSURL URLWithString:@"http://tinyurl.com/xxyy"]; 
NSURLConnection *conn = [[NSURLConnection alloc] 
    initWithRequest:[NSURLRequest requestWithURL:shortURL] 
    delegate:self 
    startImmediately:YES];

定义一些委托方法。在您的课程中,定义NSURL属性finalDestination以保存最终的网址。

- (NSURLRequest *)connection:(NSURLConnection *)connection 
             willSendRequest:(NSURLRequest *)request 
            redirectResponse:(NSURLResponse *)response 
{
    finalDestination = [response URL];
    return request;
}

- (void)connectionDidFinishLoading:(NSURLConnection *)connection 
{
    if (!finalDestination) {
            /* redirect failed, use backup url */
        finalDestination = /* backup url */
    }
    [[UIApplication sharedApplication] openURL:finalDestination];
}

另外,请查看Apple Technical Q& A Launching the App Store from an iPhone application

(注:ARC代码)