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"]
من الممكن أيضًا تعديل بيانات الاستجابة قبل تمريرها إلى المستمع (listener):
// ... 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 الخاص بنا أو الاطّلاع على المنتدى الخاص بنا.