Swift 应用内购买要求登录viewDidLoad并暂停整个应用
我在我的sprite kit游戏中没有应用程序内购买广告,到目前为止,我有以下信息:Swift 应用内购买要求登录viewDidLoad并暂停整个应用,swift,sprite-kit,in-app-purchase,Swift,Sprite Kit,In App Purchase,我在我的sprite kit游戏中没有应用程序内购买广告,到目前为止,我有以下信息: func requestProductData() { if SKPaymentQueue.canMakePayments() { let request = SKProductsRequest(productIdentifiers: self.productIdentifiers as Set<NSObject>) reque
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
}
}
func requestProductData()
{
如果SKPaymentQueue.canMakePayments(){
let request=SKProductsRequest(产品标识符:
self.productIdentifiers(已设置)
request.delegate=self
request.start()
}否则{
var alert=UIAlertController(标题:“未启用应用内购买”,消息:“请在设置中启用应用内购买”,首选样式:UIAlertControllerStyle.alert)
addAction(UIAlertAction)(标题:“设置”,样式:UIAlertActionStyle.Default,处理程序:{alertAction in
alert.dismissViewControllerAnimated(真,完成:无)
让url:NSURL?=NSURL(字符串:UIApplicationOpenSettingsURLString)
如果url!=nil
{
UIApplication.sharedApplication().openURL(url!)
}
}))
addAction(UIAlertAction)(标题:“Ok”,样式:UIAlertActionStyle.Default,处理程序:{alertAction in
alert.dismissViewControllerAnimated(真,完成:无)
}))
}
}
func productsRequest(请求:SKProductsRequest!,DID接收方响应:SKProductsResponse!){
var products=response.products
如果(products.count!=0){
对于var i=0;i
这个游戏有一个极简的用户界面:它有一个暂停按钮,如果按下这个按钮,除了我的背景动画之外,所有的东西都会暂停,在一些节点上增加不透明度遮罩,并且通常会使屏幕变暗。它还提示没有广告按钮和关卡转换界面
好的,我遇到的问题是:1)如果我按下no ads按钮,警报视图将显示并暂停所有内容,当解除警报时,将再次启动所有内容。是否有方法调用此警报视图,使其不会与我的UI交互
2) 它还要求我在游戏加载时登录。我如何停止此操作?这可能与此有关吗?不,我正在调用finish transaction方法,并且我没有弄乱我的沙盒acc