Wie Um Zu Überprüfen, Ob Der Benutzer Bereits In-App-Kauf? Um Zu Bestimmen, Ihre Zugriffsebene/Rechte
Habe ich eine einfache app, die mit einen non-consumable in-app-Kauf-option.
Aus meiner ersten view-controller habe ich ein einziges "enter" - Taste.
Diese Schaltfläche, sendet eine "freie" Nutzer (nicht non-consumable Kauf) zu einem TabBarController "A" und eine Reihe von Ansichten und 'bezahlt' Benutzer zu den anderen TabBarController "B" einen anderen Satz von Ansichten. Diese Ansichten werden sich nie kreuzen.
Ich würde gerne prüfen, ob mein code ist in der Lage zu unterscheiden, effektiv, ob ein Benutzer hat den in-app-Kauf oder sonst.
Hier ist mein code:
import UIKit
import StoreKit
class MainMainViewController: UIViewController, UIScrollViewDelegate, SKProductsRequestDelegate, SKPaymentTransactionObserver {
let defaults = NSUserDefaults.standardUserDefaults()
var product_id: NSString?;
...
override func viewDidLoad() {
product_id = "some.iap.id";
SKPaymentQueue.defaultQueue().addTransactionObserver(self)
super.viewDidLoad()
}
@IBAction func Enter(sender: AnyObject) {
//Check if product is purchased
if (defaults.boolForKey("purchased")){
print("User has purchased da goods!")
//Grant or otherwise full access based on whether user has purchased/not purchased.
//Goto TabBarController A - FULL Access:
let vc = self.storyboard!.instantiateViewControllerWithIdentifier("TabBarControllerPaid") as! TabBarControllerPaid
self.presentViewController(vc, animated: true, completion: nil)
}
else if (!defaults.boolForKey("purchased")){
print("user has NOT purchased yet")
//Goto TabBarController B - PARTIAL Access:
let vc = self.storyboard!.instantiateViewControllerWithIdentifier("TabBarControllerFree") as! TabBarControllerFree
self.presentViewController(vc, animated: true, completion: nil)
}
}
}
Vielen Dank im Voraus für alle Antworten, Kommentare oder Gedanken 🙂
Du musst angemeldet sein, um einen Kommentar abzugeben.
Werfen Sie einen Blick auf dieses tutorial, unter "Gekaufte Artikel" - Sektion.
Zeigt es, wie zu verfolgen, Gegenstände, die gekauft wurden (und ja, Sie werden mit
NSUserDefaults
wenn Sie diesem tutorial Folgen eng), und Sie werden auch lernen, wie man wiederherstellen von vorherigen Käufen, wenn die app gelöscht wird oder verschoben werden, um einem Benutzer das neue Gerät.In deinem code da oben, ich sehe "
defaults.boolForKey("purchased")
". Das große problem mit diesem code, den ich sehen kann ist, dass es nur erlaubt für ein Element, die gekauft werden (entweder "gekauft" boolean existiert inNSUserDefaults
oder nicht).purchasedProductIdentifiers
ist nur gefüllt von den lokalen Einstellungen...