在app中购买要求登录viewDidLoad并暂停整个应用程序

时间:2015-06-06 19:41:41

标签: swift sprite-kit in-app-purchase

我在应用程序购买时没有在我的精灵套件游戏中实施广告,到目前为止,我有以下内容:

    func requestProductData()
{
    if SKPaymentQueue.canMakePayments() {
        let request = SKProductsRequest(productIdentifiers:
            self.productIdentifiers as Set<NSObject>)
        request.delegate = self
        request.start()
    } else {
        var alert = UIAlertController(title: "In-App Purchases Not Enabled", message: "Please enable In App Purchase in Settings", preferredStyle: UIAlertControllerStyle.Alert)
        alert.addAction(UIAlertAction(title: "Settings", style: UIAlertActionStyle.Default, handler: { alertAction in
            alert.dismissViewControllerAnimated(true, completion: nil)

            let url: NSURL? = NSURL(string: UIApplicationOpenSettingsURLString)
            if url != nil
            {
                UIApplication.sharedApplication().openURL(url!)
            }

        }))
        alert.addAction(UIAlertAction(title: "Ok", style: UIAlertActionStyle.Default, handler: { alertAction in
            alert.dismissViewControllerAnimated(true, completion: nil)
        }))
    }
}

func productsRequest(request: SKProductsRequest!, didReceiveResponse response: SKProductsResponse!) {

    var products = response.products

    if (products.count != 0) {
        for var i = 0; i < products.count; i++
        {
            self.product = products[i] as? SKProduct
            self.productsArray.append(product!)
        }
    } else {
        println("No products found")
    }

    products = response.invalidProductIdentifiers

    for product in products
    {
        println("Product not found: \(product)")
    }
}

func buyProduct() {
    let payment = SKPayment(product: productsArray[0])
    SKPaymentQueue.defaultQueue().addPayment(payment)
}

func paymentQueue(queue: SKPaymentQueue!, updatedTransactions transactions: [AnyObject]!) {

    for transaction in transactions as! [SKPaymentTransaction] {

        switch transaction.transactionState {

        case SKPaymentTransactionState.Purchased:
            println("Transaction Approved")
            println("Product Identifier: \(transaction.payment.productIdentifier)")
            self.deliverProduct(transaction)
            SKPaymentQueue.defaultQueue().finishTransaction(transaction)

        case SKPaymentTransactionState.Failed:
            println("Transaction Failed")
            SKPaymentQueue.defaultQueue().finishTransaction(transaction)
        default:
            break
        }
    }
}

func deliverProduct(transaction:SKPaymentTransaction) {

    if transaction.payment.productIdentifier == "productId"
    {
        println("unlocking")
    }
}

func restorePurchases() {
    SKPaymentQueue.defaultQueue().addTransactionObserver(self)
    SKPaymentQueue.defaultQueue().restoreCompletedTransactions()
}

func paymentQueueRestoreCompletedTransactionsFinished(queue: SKPaymentQueue!) {
    println("Transactions Restored")

    var purchasedItemIDS = []
    for transaction:SKPaymentTransaction in queue.transactions as! [SKPaymentTransaction] {

        if transaction.payment.productIdentifier == "productId"
        {
            println("unlocking")
            // Unlock Feature
        }
}

游戏有一个极简主义的UI:它有一个暂停按钮,如果按下该按钮暂停除了我的背景动画之外的所有内容,为某些节点添加不透明蒙版并使整个屏幕变暗。它还提示没有广告按钮和电平变换器界面。

好吧我遇到的问题是:1)如果我没有按任何广告按钮,警报视图会显示并暂停所有内容,当被解雇时,会再次启动所有内容。有没有办法调用此警报视图,以便它不与我的UI交互?

2)它还要求我在加载游戏时登录。我该如何阻止它?

0 个答案:

没有答案