У меня был уже существующий проект Obj-C, так что я сфальсифицировал его, чтобы показать этот звонок в Swift.
Вот импорт заголовка SDK, который мне нужно было добавить в файл Bridging-Header.h
моего проекта:
#import <Chartboost/CBAnalytics.h>
Вот мой настоящий вызов Swift:
//Swift
@objc func makeChartboostPIACall(myReceipt:NSData, myProduct:SKProduct) {
CBAnalytics.trackInAppPurchaseEvent(myReceipt, product: myProduct)
}
Это ДОЛЖНО быть так просто, но вот немного подробнее о том, откуда берутся те значения, которые я передал:
В моем случае я передавал значения из моего кода Obj-C:
//Obj-C
[mySwiftInstance makeChartboostPIACall:transaction.transactionReceipt myProduct:myProduct];
Я сделал этот звонок после того, как только что подтвердил, что платежная транзакция успешно завершена (SKPaymentTransactionStatePurchased
). Таким образом, «транзакция» — это SKPaymentTransaction
объект, а «мойПродукт» — это соответствие SKProduct
того, что только что было куплено.
https://developer.apple.com/library/ios/documentation/StoreKit/Reference/SKPaymentTransaction_Class/index.html#//apple_ref/occ/instp/SKPaymentTransaction/transactionReceipt https://developer.apple.com/library/ios/documentation/StoreKit/Reference/SKProduct_Reference/index.html
Стоит отметить, что transaction.transactionReceipt
устарел с iOS 7, и это рекомендуемый метод для использования в будущем:
//Obj-C
NSURL *receiptURL = [[NSBundle mainBundle] appStoreReceiptURL];
NSData *receipt = [NSData dataWithContentsOfURL:receiptURL];
person
Kairon
schedule
19.08.2016