Just My Life & My Work

[iOS] 應用內連結到App Store

先前知道可以實作連結到App Store,在App中觸發事件來開啟App Store,並顯示特定App畫面,這時候發現有另一種選擇,就是不用開啟App Store,就能顯示該App在App Store顯示的樣子。這麼做的好處是讓使用者體驗更好,因為我發現自己在使用App時,被導出App時都會很不耐煩XD~因為看完之後,還要按Home鍵來回到原來的App。

在App外,開啟App Store的樣子。

在App外,開啟App Store的樣子。

這個做法要引入StoreKit

#import <StoreKit/StoreKit.h>

並且遵從其代理:

SKStoreProductViewControllerDelegate

接著就是在你想要觸發的頁面實作:

/**
 Theme: Link to App Store
 IDE: Xcode 6
 Language: Objective C
 Date: 104/04/30
 Author: HappyMan
 Blog: https://cg2010studio.wordpress.com/
 */
-(IBAction)ratingButtonClicked:(UIButton *)button
{
    NSString *cAppleID = @"876358558";

    if ([SKStoreProductViewController class] != nil) {
        SKStoreProductViewController *skpvc = [[SKStoreProductViewController alloc] init];
        skpvc.delegate = self;
        NSDictionary *dict = [NSDictionary dictionaryWithObject:cAppleID forKey: SKStoreProductParameterITunesItemIdentifier];
        [skpvc loadProductWithParameters:dict completionBlock:nil];
        [self.navigationController presentViewController:skpvc animated: YES completion: nil];
    }
    else {
        static NSString *const iOS7AppStoreURLFormat = @"itms-apps://itunes.apple.com/app/id%@";
        static NSString *const iOSAppStoreURLFormat = @"itms-apps://itunes.apple.com/WebObjects/MZStore.woa/wa/viewContentsUserReviews?type=Purple+Software&id=%@";
        NSString *url = [[NSString alloc] initWithFormat: ([[UIDevice currentDevice].systemVersion floatValue] >= 7.0f) ? iOS7AppStoreURLFormat : iOSAppStoreURLFormat, cAppleID];
        [[UIApplication sharedApplication] openURL:[NSURL URLWithString:url]];
    }
}

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

首先判斷當前SDK有無SKStoreProductViewController,有的話當然就能實現App內開啟App Store,否則就App外開啟App Store。

iOS6以前App Store的連結很囉唆,iOS7以後變的簡潔漂亮!

執行時你就會發現,實在太神奇了⋯⋯

在App內,開啟App Store的樣子。

在App內,開啟App Store的樣子。

乍看之下沒什麼不一樣,仔細瞧最上方功能列,多了「取消」和「Store」,前者可以回到原App,後者可以導到App Store。

連結到 App Store00002

而且要讓使用者幫你評論也變得很簡單!老實說,先前遇到App要我幫忙評分,但是一想到要跳出去心想就算了XD~

連結到 App Store00003

無論如何,做產品的開發者都要以使用者角度來思考,App要怎麼呈現與運作,才會讓他們使用得很「黑皮」~

參考:App store link for “rate/review this app”iOS應用內打開App Store應用詳情界面

Comments on: "[iOS] 應用內連結到App Store" (3)

  1. 您好,我嘗試了您撰寫的方式
    但在我的專案內卻沒有任何反應,下了中斷點後表示
    按下那個按鈕會跑完第18行 但沒有任何反應,此方法已經失效了嗎?
    謝謝大大

  2. […] 跟開啟其它App同樣的方式,我們使用URL Scheme。若使用者沒安裝,就幫他導到App Store App吧!如果不想要跳出我們的App,可以參考應用內連結到App Store。 […]

隨意留個言吧:)~

這個網站採用 Akismet 服務減少垃圾留言。進一步了解 Akismet 如何處理網站訪客的留言資料

標籤雲