ios 아이폰 기기관리 - 앱 스토어의 앱에 연결하는 방법





11 Answers

App Store에 직접 앱을 열려면 다음을 사용해야합니다.

itms-apps : // ...

이 방법을 사용하면 먼저 iTunes로 이동하지 않고 App Store 앱을 열 수 있습니다 (단지 itms : //를 사용할 때만).

희망이 도움이됩니다.

EDIT : APR, 2017. itms-apps : // 실제로 iOS10에서 다시 작동합니다. 나는 그것을 시험했다.

EDIT : APR, 2013. iOS5 이상에서는 더 이상 작동하지 않습니다. 그냥 사용하십시오.

https://itunes.apple.com/app/id378458261

리디렉션이 더 이상 없습니다.

확인 안됨 신세계앱피스

나는 내 iPhone 게임의 무료 버전을 만들고있다. 나는 사람들을 앱 스토어에서 유료 버전으로 데려가주는 무료 버전 안에 버튼을 갖고 싶다. 표준 링크를 사용하는 경우

http://itunes.apple.com/WebObjects/MZStore.woa/wa/viewSoftware?id=300136119&mt=8

iPhone은 Safari를 먼저 열고 앱 스토어를 엽니 다. 앱 스토어를 직접 여는 다른 앱을 사용 했으므로 가능하다는 것을 알고 있습니다.

어떤 아이디어? 앱 스토어의 URL 스키마는 무엇입니까?




iOS 6부터 SKStoreProductViewController 클래스를 사용하여 올바른 방법으로 시작합니다.

스위프트 3.x :

func openStoreProductWithiTunesItemIdentifier(identifier: String) {
    let storeViewController = SKStoreProductViewController()
    storeViewController.delegate = self

    let parameters = [ SKStoreProductParameterITunesItemIdentifier : identifier]
    storeViewController.loadProduct(withParameters: parameters) { [weak self] (loaded, error) -> Void in
        if loaded {
            // Parent class of self is UIViewContorller
            self?.present(storeViewController, animated: true, completion: nil)
        }
    }
}

func productViewControllerDidFinish(_ viewController: SKStoreProductViewController) {
    viewController.dismiss(animated: true, completion: nil)
}
// Usage:
openStoreProductWithiTunesItemIdentifier(identifier: "13432")

다음과 같이 앱의 iTunes 항목 식별자를 가져올 수 있습니다 (정적 항목 대신).

스위프트 3.2

var appID: String = infoDictionary["CFBundleIdentifier"]
var url = URL(string: "http://itunes.apple.com/lookup?bundleId=\(appID)")
var data = Data(contentsOf: url!)
var lookup = try? JSONSerialization.jsonObject(with: data!, options: []) as? [AnyHashable: Any]
var appITunesItemIdentifier = lookup["results"][0]["trackId"] as? String
openStoreProductViewController(withITunesItemIdentifier: Int(appITunesItemIdentifier!) ?? 0)

스위프트 2.x :

func openStoreProductWithiTunesItemIdentifier(identifier: String) {
    let storeViewController = SKStoreProductViewController()
    storeViewController.delegate = self

    let parameters = [ SKStoreProductParameterITunesItemIdentifier : identifier]
    storeViewController.loadProductWithParameters(parameters) { [weak self] (loaded, error) -> Void in
        if loaded {
            // Parent class of self is UIViewContorller
            self?.presentViewController(storeViewController, animated: true, completion: nil)
        }
    }
}

func productViewControllerDidFinish(viewController: SKStoreProductViewController) {
    viewController.dismissViewControllerAnimated(true, completion: nil)
}
// Usage
openStoreProductWithiTunesItemIdentifier("2321354")

목표 -C :

static NSInteger const kAppITunesItemIdentifier = 324684580;
[self openStoreProductViewControllerWithITunesItemIdentifier:kAppITunesItemIdentifier];

- (void)openStoreProductViewControllerWithITunesItemIdentifier:(NSInteger)iTunesItemIdentifier {
    SKStoreProductViewController *storeViewController = [[SKStoreProductViewController alloc] init];

    storeViewController.delegate = self;

    NSNumber *identifier = [NSNumber numberWithInteger:iTunesItemIdentifier];

    NSDictionary *parameters = @{ SKStoreProductParameterITunesItemIdentifier:identifier };
    UIViewController *viewController = self.window.rootViewController;
    [storeViewController loadProductWithParameters:parameters
                                   completionBlock:^(BOOL result, NSError *error) {
                                       if (result)
                                           [viewController presentViewController:storeViewController
                                                              animated:YES
                                                            completion:nil];
                                       else NSLog(@"SKStoreProductViewController: %@", error);
                                   }];

    [storeViewController release];
}

#pragma mark - SKStoreProductViewControllerDelegate

- (void)productViewControllerDidFinish:(SKStoreProductViewController *)viewController {
    [viewController dismissViewControllerAnimated:YES completion:nil];
}

다음과 같이 kAppITunesItemIdentifier (app의 itunes 항목 식별자)를 얻을 수 있습니다 : (정적 항목 대신)

NSDictionary* infoDictionary = [[NSBundle mainBundle] infoDictionary];
    NSString* appID = infoDictionary[@"CFBundleIdentifier"];
    NSURL* url = [NSURL URLWithString:[NSString stringWithFormat:@"http://itunes.apple.com/lookup?bundleId=%@", appID]];
    NSData* data = [NSData dataWithContentsOfURL:url];
    NSDictionary* lookup = [NSJSONSerialization JSONObjectWithData:data options:0 error:nil];
    NSString * appITunesItemIdentifier =  lookup[@"results"][0][@"trackId"]; 
    [self openStoreProductViewControllerWithITunesItemIdentifier:[appITunesItemIdentifier intValue]];



Apple은 appstore.com URL을 발표했습니다.

https://developer.apple.com/library/ios/qa/qa1633/_index.html

App Store Short Links에는 iOS 용 앱과 Mac Apps 용의 두 가지 형식의 세 가지 유형이 있습니다.

회사 이름

iOS : http://appstore.com/ 예 : http://appstore.com/apple

Mac : http://appstore.com/mac/ 예 : http://appstore.com/mac/apple

앱 이름

iOS : http://appstore.com/ 예 : http://appstore.com/keynote

Mac : http://appstore.com/mac/ 예 : http://appstore.com/mac/keynote

회사 별 앱

iOS : http://appstore.com/ / 예 : http://appstore.com/apple/keynote

Mac : http://appstore.com/mac/ / 예 : http://appstore.com/mac/apple/keynote

대부분의 회사와 앱에는 표준 App Store Short Link가 있습니다. 이 표준 URL은 특정 문자를 변경하거나 제거하여 만들어지며 그 중 대부분은 불법이거나 URL에서 특별한 의미를 지닙니다 (예 : "&").

App Store Short Link를 만들려면 회사 또는 앱 이름에 다음 규칙을 적용하십시오.

공백을 모두 제거하십시오.

모든 문자를 소문자로 변환

모든 저작권 (©), 상표 (™) 및 등록 상표 (®) 기호 제거

앰퍼샌드 ( "&")를 "and"

대부분의 구두점을 제거하십시오 (세트에 대해서는 목록 2 참조).

악센트 및 기타 장식 된 문자 (ü, å 등)를 요소 문자 (u, a 등)로 바꿉니다.

다른 모든 문자는 그대로 두십시오.

Listing 2 제거해야하는 문장 부호.

! "# $ % '() * +, -. / :; <=> ¿? @ [] ^ _`{|} ~

다음은 발생하는 전환을 보여주는 몇 가지 예입니다.

앱 스토어

회사 이름 예

Gameloft => http://appstore.com/gameloft

Activision Publishing, Inc. => http://appstore.com/activisionpublishinginc

첸의 사진 및 소프트웨어 => http://appstore.com/chensphotographyandsoftware

앱 이름 예

오카리나 => http://appstore.com/ocarina

내 페리는 어디 있니? => http://appstore.com/wheresmyperry

Brain Challenge ™ => http://appstore.com/brainchallenge







이것은 APP ID 만 사용하여 완벽하게 작동했습니다.

 NSString *urlString = [NSString stringWithFormat:@"http://itunes.apple.com/app/id%@",YOUR_APP_ID];
[[UIApplication sharedApplication] openURL:[NSURL URLWithString:urlString]];

리디렉션 수는 0입니다.




개발자의 앱에 연결하고 개발자 이름에 구두점 또는 공백이 있으면 (예 : Development Company, LLC) 다음과 같이 URL을 구성합니다.

itms-apps://itunes.com/apps/DevelopmentCompanyLLC

그렇지 않으면 iOS 4.3.3에서 '요청을 처리 할 수 ​​없습니다.'를 반환합니다.




이것은 ios5에서 작동하고 직접 연결됩니다.

NSString *iTunesLink = @"http://itunes.apple.com/app/baseball-stats-tracker-touch/id490256272?mt=8";  
[[UIApplication sharedApplication] openURL:[NSURL URLWithString:iTunesLink]];



iTunes에 앱을 만들면 앱을 제출하기 전에 앱 ID를 얻을 수 있다는 것을 확인할 수 있습니다.

따라서..

itms-apps://itunes.apple.com/app/id123456789

NSURL *appStoreURL = [NSURL URLWithString:@"itms-apps://itunes.apple.com/app/id123456789"];
    if ([[UIApplication sharedApplication]canOpenURL:appStoreURL])
        [[UIApplication sharedApplication]openURL:appStoreURL];

치료를해라.




적어도 iOS 9 이상

  • 앱 스토어에서 바로 열기

itms-apps://itunes.apple.com/app/[appName]/[appID]

개발자 앱 목록

itms-apps://itunes.apple.com/developer/[developerName]/[developerID]



QA1629 itms-apps: 또는 itms: 에 따르면 작동하지 않을 것이다. 너는 다음을 사용해야한다.

appStoreLink = "https://itunes.apple.com/us/app/apple-store/id375380948?mt=8"  

또는

SKStoreProductViewController 



이 방법을 시도해보십시오.

http://itunes.apple.com/lookup?id= "여기에 앱 ID"가 표시됩니다. 여기에서 json을 반환합니다. 여기에서 키 " trackViewUrl "을 찾고 값은 원하는 URL입니다. 이 URL을 사용하십시오 (단지 https://itms-apps:// 대체 https:// ) 이것은 잘됩니다.

예를 들어 앱 ID가 xyz이면이 링크로 이동하십시오. http://itunes.apple.com/lookup?id=xyz

그런 다음 핵심 " trackViewUrl "에 대한 URL을 찾으십시오. 이것은 앱 스토어에서 귀하의 앱에 대한 URL이며 xcode에서이 URL을 사용하려고 시도합니다.

NSString *iTunesLink = @"itms-apps://itunes.apple.com/us/app/Your app name/id Your app ID?mt=8&uo=4";
        [[UIApplication sharedApplication] openURL:[NSURL URLWithString:iTunesLink]];

감사




Related