iphone - 是否可以根据应用程序的捆绑标识符获取应用内购买产品标识符列表

标签 iphone ios objective-c in-app-purchase

我想做一个示例应用程序。其中,我必须根据应用程序的 bundle identifier 显示 In App Purchase product identifiers 列表。是否可以获得产品标识符列表?如果可能,请帮助我。

最佳答案

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

关于我的一个实现的想法

Product-Identifier = Bundle-Identifier + 意思是产品全名

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

或者

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

我创建了帮助程序类,在此处提供产品标识符列表。我从数据库中获取产品名称,并通过在产品名称后附加 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;
}

关于iphone - 是否可以根据应用程序的捆绑标识符获取应用内购买产品标识符列表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18738125/

相关文章:

ios - 在 UIWebView 中嵌入图像和 UILable

iphone - ManagedObjectModel 初始化为 nil

ios - 在 UIImageView IOS 中绘制形状

ios - Vimeo 无法在 iPad 上运行

objective-c - ABAddressBookRequestAccessWithCompletion 在 iOS 10 上崩溃

iphone - UIView 内的 UiView 过渡

iphone - cocos2d 流行场景事件

android - 使用 Prop 将标题添加到导航栏 ReactNative

objective-c - RestKit 对象建模动态数据

ios - 错误无法使 UICollectionElementKindCell 类型的 View 出列