根本问题是SkPaymentQueue.defaultQueue().addPayment()
不允许您传递回调函数,并且无法在运行时(据我所知)将函数传递给SKPaymentTransactionObserver
。我正在使用React-native版本0.28
创建允许我进行应用内购买的模块,但是我想在应用内购买完成后回调Javascript函数。
因此,我打算将对RCTResponseSenderBlock
回调的引用存储在一个类中,并在中对其进行引用SKPaymentTransactionObserver
。但是,我不知道如何在Swift中引用一个函数。
我试着做下面的变量
weak var purchaseCallback: RCTResponseSenderBlock = nil
在课程的顶部,因此我可以进行设置并稍后再参考;但是,Swift抱怨以下内容:
Nil cannot initialize specified type 'RCTResponseSenderBlock'
如果有一种方法可以处理函数引用和/或更好的方法来进行购买回调,请多多帮助!
正如布赖恩·陈(Bryan Chen)在上面的评论中指出的那样,使变量成为可选变量可以解决问题。
这是我定义保存回调的变量的方式:
var purchaseCallback: RCTResponseSenderBlock? = nil
这是我如何存储来自Swift中React-native调用的函数的函数引用的方法:
@objc func purchaseProduct(identifier: String, callback successCallback: RCTResponseSenderBlock) {
purchaseCallback = successCallback
}
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句