我想做一个示例应用程序。我必须在其中显示In App Purchase product identifiers
基于bundle identifier
应用程序的列表。是否可以获取product identifiers
列表?如果可能,请帮助我。
问问题
729 次
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 回答