3

我想做一个示例应用程序。我必须在其中显示In App Purchase product identifiers基于bundle identifier应用程序的列表。是否可以获取product identifiers列表?如果可能,请帮助我。

4

1 回答 1

1

Apple 没有提供一种方法来获取适用于应用程序的所有应用程序内产品。他们在文档中提到了这一点。我们应该在我们的应用程序中硬编码,或者使用单独的 API 调用来返回产品列表。

关于我的一个实施的想法

Product-Identifier = Bundle-Identifier + 含义产品全名

将所有产品标识符保存在 .Plist 中或您可以轻松更改的某个方便的位置。

或者

动态方法之一是用户服务器模型。简而言之,通过网络服务从您的服务器检索产品列表。

我已经创建了帮助程序类,它在这里给了我产品标识符列表。我通过在产品名称后面附加 bundleidentifier 来获取产品名称表单数据库和 crate productidentifier。您可以从 .plist 中获取产品名称,并通过在产品名称后面附加捆绑标识符来创建产品标识符

+ (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 回答