Native rendering mode
When using native rendering mode, the SDK can record sensitive data in your application.
In order to protect user privacy, you can configure Smartlook to not record sensitive data.
Smartlook attempts to hide selected sensitive UI elements automatically. It can be also instructed to hide or show particular UI components. The last possibility is to stop screen capturing altogether by using no rendering mode.
No Rendering
Sometimes, the entire screen is filled with sensitive data. In these cases, it is best not to record any data. To not record any data, use the NO_RENDERING
rendering mode:
Smartlook.instance.preferences.setRenderingMode(RenderingMode.no_rendering);
Rendering modes
The Smartlook SDK provides rendering modes that hide sensitive information by simplifying the rendered screen for recording. This is still useful to you because all user interactions are still recorded, but no sensitive data is rendered. For more information, see Rendering Modes.
Automatically-detected touch events
Some screens display sensitive data through automatically detected touch events. Read more about this issue in secure custom keyboard example.
When the application no longer displays sensitive data, you can set the screen rendering mode to your preferred rendering mode:
Smartlook.instance.preferences.setRenderingMode(RenderingMode.no_rendering);
Handling WebView sensitivity
If an app uses WebView
and you want to record them, you need to enable WebView
recording:
Smartlook.instance.preferences.setWebViewEnabled(true);
Recording mask
In cases where certain areas of the app should not be recorded, but cannot be defined by a View
, you can use RecordingMask
:
await Smartlook.instance.setRecordingMask([
RecordingMask(
rect: Rect.fromLTWH(0, 0, 200, 200),
maskType: RecordingMaskType.covering)
]);
You can only have one Recording mask
set at a time, but the recording mask can contain a list of RecordingMask.Element
to cover multiple areas at once.
RecordingMask.Element
can be one of two types:
Mask type | How it works |
---|---|
RecordingMask.Element.Type.COVERING | The area defined by the element Rect is not recorded |
RecordingMask.Element.Type.ERASING | The area defined by the element Rect is recorded even if a previous RecordingMask.Element inside a list was covering the area. |
RecordingMask
example
RecordingMask
exampleThe following example describes a RecordingMask
in action.
On the left:
- The blue box represents a
video_item
element. - The red box represents a
video_item_image
element.
On the right:
- The
video_item
element (blue box) has a.COVERING
value. The.COVERING
value masks the element in the session recording. - The
video_item_image
element (red box) has an.ERASING
value. The image is visible in the session recording because the.ERASING
value cancels the.COVERING
value.