Это фрагмент кода из официальной спецификации , описывающий, как загрузить форму согласия gdpr:
val form:ConsentForm = ConsentForm.Builder(context, privacyUrl)
.withListener(object : ConsentFormListener() {
override fun onConsentFormLoaded() {
// Consent form loaded successfully.
form.show()// No, you can't do it! Unresolved reference:form
}
override fun onConsentFormOpened() {
// Consent form was displayed.
}
override fun onConsentFormClosed(
consentStatus: ConsentStatus?, userPrefersAdFree: Boolean?
) {
// Consent form was closed.
}
override fun onConsentFormError(errorDescription: String?) {
// Consent form error.
}
})
.withPersonalizedAdsOption()
.withNonPersonalizedAdsOption()
.withAdFreeOption()
.build()
form.load()
Предположим, я хочу показать форму сразу после загрузки. Как сделатьЯ делаю это? Просто позвоните form.show()
? Ответ - нет.
Вы не можете ссылаться на form
переменную внутри onConsentFormLoaded
, так как form
даже не объявлен. Почему Google это сделал? Есть ли способ исправить это без дополнительных учеников? У меня есть это в статическом классе, и Android Studio предупреждает, что хранить контекстные классы (ConsentForm) в статических полях плохо.