ios - 本地化应用程序的 iTunes 符号链接(symbolic link)

标签 ios hyperlink app-store-connect itunes-store

我使用 i-tunes 应用内链接,例如:

NSString *app_link = @"samuraivszombiesdefense";
NSString *link = [@"itms-apps://itunes.com/apps/"stringByAppendingString:app_name];
[[UIApplication sharedApplication] openURL:[NSURL URLWithString:link]];

有人碰巧知道:“应用程序名称”是什么 - 在 iTunes 中创建的应用程序记录名称(禁止符号除外)(您可以在 iTunesConnect->“管理您的应用程序”屏幕上看到的内容)或“应用程序名称”在 iTunesConnect 中编辑版本详细信息时来自“元数据和上传”的字段?

我的意思是,如果应用的元数据有多种语言,则每种语言的“应用名称”都不同。如果应用名称为英文应用名称,“itms-apps://itunes.com/apps/appname”之类的链接是否有效?

最佳答案

好的,这是我的解决方案。 我决定使用如下网址: http://itunes.apple.com/app/idXXXXXXXXX?mt=8 ,其中 XXXXXXXXX - 我的应用程序 ID。 没有国家前缀,所以我想它可以在全局范围内使用,而不仅仅是在美国或德国。 还是不行?

这种链接会导致多次重定向。因此,为了避免它们,我使用了这样的代码(基于 Apple 文档中的代码并且运行良好):

   @interface iTunesOpener ()
{
    NSURL *iTunesURL;
}

- (void)openAppLinkFromAppId:(NSString *) appid;

- (void)openReferralURL:(NSURL *)referralURL;

- (NSURLRequest *)connection:(NSURLConnection *)connection willSendRequest:(NSURLRequest *)request redirectResponse:(NSURLResponse *)response;

- (void)connectionDidFinishLoading:(NSURLConnection *)connection;

@end


@implementation iTunesOpener

- (void)openAppLinkFromAppId:(NSString *) appid
{
    NSString *iTunesLink = [NSString stringWithFormat:@"http://itunes.apple.com/app/id%@?mt=8", appid];
    NSURL* url = [NSURL URLWithString:iTunesLink];
    [self openReferralURL: url];
}

// Process a LinkShare/TradeDoubler/DGM URL to something iPhone can handle
- (void)openReferralURL:(NSURL *)referralURL
{
    NSURLConnection *con = [[NSURLConnection alloc] initWithRequest:[NSURLRequest requestWithURL:referralURL] delegate:self startImmediately:YES];
    [con release];
}

// Save the most recent URL in case multiple redirects occur
// "iTunesURL" is an NSURL property in your class declaration
- (NSURLRequest *)connection:(NSURLConnection *)connection willSendRequest:(NSURLRequest *)request redirectResponse:(NSURLResponse *)response
{
    iTunesURL = [response URL];
    if( [iTunesURL.host hasSuffix:@"itunes.apple.com"])
    {
        [connection cancel];
        [self connectionDidFinishLoading:connection];
        return nil;
    }
    else
    {
        return request;
    }
}

// No more redirects; use the last URL saved
- (void)connectionDidFinishLoading:(NSURLConnection *)connection
{
    [[UIApplication sharedApplication] openURL:iTunesURL];
}

@end

关于ios - 本地化应用程序的 iTunes 符号链接(symbolic link),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13474942/

相关文章:

ios - 在数组中查找最近的 float

objective-c - 从源代码中删除函数后的 undefined symbol

objective-c - 在Objective-C中定时和重复执行线程

c# - 嵌套的文本 block 和超链接,如何在 C# 中复制此 XAML?

ios - 错误 ITMS-90171 : Invalid Bundle Structure - The binary file [CocoaPods file]

ios - 为什么我的 Xcode 无法验证 swift iOS 项目

ios - APPSTORE : Unable to submit the app for review. 需要以下项目才能开始审核过程 : An error has occurred. 请稍后再试

ios - TableView 单元格在滚动时消失

html - 链接到网页的特定部分

css - :active issue in ie6