3

サンプルアプリを作りたい。In App Purchase product identifiersアプリケーションのに基づいてリストを表示する必要bundle identifierがあります。product identifiersリストを取得することは可能ですか?. 可能であれば、私を助けてください。

4

1 に答える 1

1

Apple は、アプリで利用可能なすべてのアプリ内製品を取得する方法を提供していません。彼らはドキュメントでこれについて言及しています。アプリでこれをハードコーディングするか、別の API 呼び出しを使用して製品のリストを返す必要があります。

My One of Implementation についての考え方

Product-Identifier = Bundle-Identifier + 製品のフルネームの意味

すべての製品 ID を .Plist または簡単に変更できる便利な場所に保管してください。

または

動的アプローチの 1 つがユーザー サーバー モデルです。簡単に言えば、Web サービスを介してサーバーから製品リストを取得します。

ここに製品識別子リストを表示するヘルパー クラスを作成しました。データベースから製品名を取得し、製品名に bundleidentifier を追加して productidentifier を作成します。.plist から製品名を取得し、productname にバンドル識別子を追加して productidentifier を作成します

+ (SPAppPurchaseHelper *)sharedInstance {
  static dispatch_once_t once;
  static SPAppPurchaseHelper * sharedInstance;
  dispatch_once(&once, ^{
      FMDBHandler *dbHandler= [[FMDBHandler alloc] init];
     NSString *query=@"SELECT productId FROM PlayList";
    NSArray *tblDataArr= [dbHandler getListBySQL:query];
    NSString *bundleIdentifier = [[NSBundle mainBundle] bundleIdentifier];
    NSMutableArray *identifierArray=[[NSMutableArray alloc]init];
    for(NSMutableDictionary *productDict in tblDataArr){

        NSString *productIdetifierStr= [NSString stringWithFormat:@"%@.%@",bundleIdentifier,[productDict objectForKey:@"productId"]];
        [identifierArray addObject:productIdetifierStr];
    }

    NSSet * productIdentifiers = [NSSet setWithArray:identifierArray];
    sharedInstance = [[self alloc] initWithProductIdentifiers:productIdentifiers];
});
return sharedInstance;
}
于 2013-09-11T11:00:18.917 に答える