Mur*_*ock 5 iphone in-app-purchase ios mkstorekit
我正在我的应用程序中实现MKStoreKit,但应用程序的性质使得它需要支持频繁,动态地更改可用(非消耗性)产品列表以供应用程序购买.因此,我需要能够定期向我们的服务器查询可用产品ID,描述等的当前列表.
据我所知,MKStoreKit仅支持可用产品的静态plist,这意味着我们每次需要更改IAP产品列表时都必须发布应用更新.正如我所提到的,这项服务无法实现.
有没有人知道通过使用MKStoreKit从服务器下载IAP产品列表来更新我们的IAP产品列表的方法,而无需更新应用程序.
如果没有,我必须想象那里有人修改了代码以支持这一点.如果是这样,任何提示和智慧将获得很多赞赏.
提前致谢.
据我所知,MKStoreKit 使用以下方法将您的产品列表作为 plist 检索MKStoreManager.m:
#pragma mark Internal MKStoreKit functions
//line 201 of MKStoreManager.m
- (NSDictionary*) storeKitItems
{
return [NSDictionary dictionaryWithContentsOfFile:
[[[NSBundle mainBundle] resourcePath] stringByAppendingPathComponent:@"MKStoreKitConfigs.plist"]];
}
Run Code Online (Sandbox Code Playgroud)
因此,如果您只需更改此方法调用,例如,从服务器获取新项目,您就可以获得所需的结果。
例如,您可以有一些预先填充的 .plist,然后将其移动到 NUSUserDefaults,就像 NSDictionary 一样,并且当来自服务器的新项目到来时,您只需更新它即可。
所以,你的方法看起来像这样:
- (NSDictionary*) storeKitItems
{
if(![[NSUserDefaults standardUserDefaults]valueForKey:@"NewConfigs"])
[[NSUserDefaults standardUserDefaults]setValue:[NSDictionary dictionaryWithDictionary:[NSDictionary dictionaryWithContentsOfFile:
[[[NSBundle mainBundle] resourcePath] stringByAppendingPathComponent:@"MKStoreKitConfigs.plist"]]] forKey:@"NewConfigs"];
[[NSUserDefaults standardUserDefaults]synchronize];
return [[NSUserDefaults standardUserDefaults]valueForKey:@"NewConfigs"];
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
1383 次 |
| 最近记录: |