如何在Android Kotlin函数中处理RevenueCat登录的简单错误
处理RevenueCat logInWith的错误回调,获取错误码与信息
你现在用的::error是函数引用,但要拿到错误详情,直接把它替换成自定义lambda表达式就行——因为onError参数要求的就是一个接收PurchasesError类型参数的函数。
修改后的完整代码
Purchases.sharedInstance.logInWith( myUserID, // 替换原::error,自定义错误处理逻辑 { error -> // 提取错误码和错误信息 val errorCode = error.code val errorMessage = error.message // 这里写你的错误处理逻辑,比如打印日志、弹窗提示用户等 println("登录失败:错误码=$errorCode,详情=$errorMessage") } ) { customerInfo, created -> // 登录成功的处理逻辑写在这里 }
补充说明
根据RevenueCat SDK的定义,PurchasesError类包含核心错误信息:
code:错误码(一般是枚举类型,比如PurchasesErrorCode的实例)message:错误的详细描述文本- 部分版本还提供
underlyingError属性,可获取底层原生错误的具体信息
你可以根据业务需求,在错误回调里做对应处理,比如给用户展示友好提示、记录错误日志等。
附你提供的原始代码
你的登录代码
Purchases.sharedInstance.logInWith( myUserID, ::error // <- How to handle this? I want to retrieve error Code and Error Message. ) { customerInfo, created -> // Handle Successful login here }
RevenueCat SDK的函数实现
@Suppress("unused") fun Purchases.logInWith( appUserID: String, onError: (error: PurchasesError) -> Unit = ON_ERROR_STUB, onSuccess: (customerInfo: CustomerInfo, created: Boolean) -> Unit ) { logIn(appUserID, logInSuccessListener(onSuccess, onError)) }
内容的提问来源于stack exchange,提问作者Hamza
相关产品推荐
相关产品推荐

