Android SDK - Очистка конфиденциальных данных
Компоненты интерфейса
Section titled Компоненты интерфейсаОчищенные представления будут размыты в итоговом воспроизведении. Вы можете добавить любой компонент интерфейса, и он будет автоматически удалён (для экономии памяти), как только перестанет отображаться на экране.
import com.openreplay.tracker.OpenReplay
OpenReplay.addIgnoredView(view)
Jetpack Compose
Section titled Jetpack Composeimport com.openreplay.tracker.Sanitize
Sanitize {
Button(
modifier = Modifier
.fillMaxWidth()
.padding(top = 28.dp, bottom = 3.dp)
.trackTouchEvents("Continue Button"),
onClick = onSubmit,
) {
Text(
text = "Submit",
style = MaterialTheme.typography.titleSmall
)
}
}
Сетевые запросы
Section titled Сетевые запросыЭкспортируются два ключа для автоматической обрезки данных запроса/ответа: ignoredKeys для тела и ignoredHeaders для заголовков. Будут очищены как запрос, так и ответ, но тело будет затронуто только в том случае, если это корректный JSON.
Просто присвойте список строк, которые вы хотите очистить:
val networkListener = NetworkListener()
networkListener.ignoredHeaders = ["mySecretToken"]
networkListener.ignoredKeys = ["password"]
Также можно изменить данные ответа перед их передачей слушателю:
// ... request
var sanitizedData: Any? = null
data?.let {
try {
val json = JSONTokener(it).nextValue()
sanitizedData = customSanitizeFunction(it)
println(json)
} catch (error: JSONException) {
println("Error deserializing JSON: $error")
}
}
networkListener.finish(response, sanitizedData)
Остались вопросы?
Section titled Остались вопросы?Если у вас есть вопросы об этом процессе, свяжитесь с нами в нашем Slack или загляните на наш Форум.