为自定义键盘iOS8启用应用程序内购买

时间:2014-08-17 07:04:46

标签: ios ios8 ios-app-extension

我正在为iOS构建自定义键盘,我想知道如何为此启用应用内购买?文档说明我可以通过包含应用程序启用应用内购买,但我不确定这意味着什么(技术上)?

是否有人通过应用内购买构建了iPhone扩展程序,可以为我提供一些指导?

3 个答案:

答案 0 :(得分:1)

扩展程序与应用程序捆绑在一起。当用户下载包含应用程序时,扩展程序可供用户添加到其键盘列表,今日视图等。如果您想为键盘充电,目前唯一可以做到这一点的方法是为应用程序收费包含键盘扩展名。

答案 1 :(得分:0)

为了明确说明,不允许在任何包含键盘的应用扩展程序中购买Inapp,这将导致您的应用无法通过审核。 Inapp购买必须在容器应用程序中完成。以下是当前的应用扩展程序审核指南。

https://developer.apple.com/app-store/review/guidelines/

  1. 扩展
  2. 25.1 托管扩展程序的应用必须遵守App Extension编程指南

    25.2 托管扩展程序的应用必须提供一些功能(帮助屏幕,其他设置),否则将被拒绝

    25.3 在其分机视图中托管包含营销,广告或应用内购买的扩展程序的应用将被拒绝

    25.4 键盘扩展必须提供进入下一个键盘的方法

    25.5 键盘扩展必须保持正常运行,无需网络访问,否则将被拒绝

    25.6 键盘扩展必须提供“应用程序扩展编程指南”中所述的数字和十进制键盘类型,否则它们将被拒绝

    25.7 提供键盘扩展程序的应用必须具有主要类别的实用程序和隐私权政策,否则将被拒绝

    25.8 提供键盘扩展程序的应用程序可能只收集用户活动以增强其在iOS设备上的键盘扩展功能,或者可能会被拒绝

答案 2 :(得分:-1)

我也试图这样做。我想启用应用内购买,以便人们可以为键盘购买额外的东西。我正在尝试几种方法无法让它发挥作用。我认为可能无法直接从键盘上进行操作。

首先,我尝试通过键盘直接进行应用内购买:

- (IBAction) buySomething:(id)sender {
    SKProductsRequest *request = [[SKProductsRequest alloc] initWithProductIdentifiers: [NSSet setWithObject:@"productid"]];
    request.delegate = self;
    [request start];
}

- (void)productsRequest:(SKProductsRequest *)request didReceiveResponse:(SKProductsResponse *)response {
    // It never gets here.
}

然后我试着看看我是否可以从键盘启动容器应用程序,但没有任何反应。在info.plist中,我有网址类型>项目0>网址方案>项目0> myurlscheme。

[self.extensionContext openURL:[NSURL URLWithString:@"myurlscheme://#"] completionHandler:nil];

我所能想到的只是简单地展示启动容器应用程序的说明,但我宁愿让它付费应用而不是那样。