Plugin.Maui.ScreenSecurity bietet eine nahtlose Lösung zur Verhinderung von Inhalten sowie Screenshots und Aufnahmen in Ihrer .NET MAUI -Anwendung
| Plattform | Version |
|---|---|
| .NET MAUI Android | API 21+ |
| .NET MAUI IOS | iOS 14+ |
| Fenster | 10.0.17763+ |
IsProtectionEnabled -Eigenschaft hinzugefügt, um zu überprüfen, ob der Bildschirmschutz bereits aktiviert oder deaktiviert ist.ScreenCaptured Event -Handler, das Benachrichtigungen auslöst, wenn ein Screenshot aufgenommen oder der Bildschirm aufgezeichnet wird.Blazor -Beispiel hinzugefügt, um die Implementierung dieses Plugins zu präsentieren.Klicken Sie hier, um den vollständigen ChangeLog zu sehen!
Plugin.Maui.ScreenSecurity ist über Nuget erhältlich, holen Sie sich das neueste Paket und installieren Sie es in Ihrer Lösung:
Install-Package Plugin.Maui.ScreenSecurity
Initialisieren Sie das Plugin in Ihrer MauiProgram -Klasse:
using Plugin . Maui . ScreenSecurity ;
public static MauiApp CreateMauiApp ( )
{
var builder = MauiApp . CreateBuilder ( ) ;
builder
. UseMauiApp < App > ( )
. ConfigureFonts ( fonts =>
{
fonts . AddFont ( "OpenSans-Regular.ttf" , "OpenSansRegular" ) ;
fonts . AddFont ( "OpenSans-Semibold.ttf" , "OpenSansSemibold" ) ;
} )
. UseScreenSecurity ( ) ;
return builder . Build ( ) ;
} Fügen Sie in Ihrer Android.manifest -Datei (Plattformen/Android) die folgende Berechtigung hinzu:
< uses-permission android : name = " android.permission.DETECT_SCREEN_CAPTURE " />Fügen Sie schließlich die Standardinstanz des Plugins als Singleton hinzu, um es spät in Ihren Code zu injizieren:
builder . Services . AddSingleton < IScreenSecurity > ( ScreenSecurity . Default ) ; Es ist wichtig zu erkennen, dass die Verhinderung der Verhinderung von Screenshots oder Aufnahmen Ihrer App eine herausfordernde Aufgabe sein kann und die vollständige Prävention möglicherweise nicht möglich ist. Es ist erwähnenswert, dass keine Methode die Möglichkeit, dass Ihr Bildschirm über ein anderes physisches Gerät oder einen potenziellen Verstoß im Betriebssystem erfasst wird, vollständig beseitigen kann.
Es ist auch wichtig, die Auswirkungen auf die Benutzererfahrung bei der Implementierung dieser Methoden zu berücksichtigen und ein Gleichgewicht mit den Sicherheitsbedenken Ihrer App zu treffen.
Wenn Sie noch Version 1.0.0 verwenden, finden Sie in den Legacy -Dokumenten für die vorherige Version.
Die neue einheitliche API enthält zwei Methoden: ActivateScreenSecurityProtection() und DeactivateScreenSecurityProtection() mit optionalen Parametern nur für die iOS -Plattform. Es bietet außerdem zwei Eigenschaften: IsProtectionEnabled , das überprüft, ob der Schutz aktiv ist, und der ScreenCaptured Event -Handler, der benachrichtigt, wann ein Screenshot aufgenommen oder der Bildschirm aufgezeichnet wird.
void ActivateScreenSecurityProtection ( ) ;Wenn Sie diesen Schutz aktivieren, wird der Inhalt Ihrer App geschützt, wenn er an den Recents -Bildschirm oder den App -Switcher gesendet wird. Dies hilft sicherzustellen, dass sensible Informationen nicht freigelegt werden.
void ActivateScreenSecurityProtection ( bool blurScreenProtection , bool preventScreenshot , bool preventScreenRecording ) ;Diese Methode ähnelt der vorherigen Methode, jedoch mit Parametern, um die Standardwerte in iOS zu ändern:
blurScreenProtection : Aktivieren/Deaktivieren des Bildschirms Unschärfe, um die Sichtbarkeit des Inhalts im Hintergrund zu verhindern. Standardmäßig wahr .preventScreenshot : Entscheiden Sie, ob Benutzer Screenshots Ihrer App aufnehmen können. Standardmäßig wahr .preventScreenRecording : Steuern Sie, ob Benutzer den Bildschirm während der Verwendung Ihrer App aufzeichnen können. Standardmäßig wahr . void ActivateScreenSecurityProtection ( ScreenProtectionOptions screenProtectionOptions ) ; Diese Methode ähnelt der ursprünglichen Methode, nimmt jedoch einen ScreenProtectionOptions -Parameter vor. Auf diese Weise können Sie den Bildschirmschutz weiter anpassen, indem Sie entweder eine Farbe oder ein Bild zusammen mit dem Screenshot- und Bildschirmaufzeichnungsschutz für iOS -Geräte angeben.
HINWEIS : Wenn Sie sowohl Farbe als auch Bild festlegen, wendet es nur die, die Sie zuerst deklariert haben.
ScreenProtectionOptions :
Color : Repräsentiert eine Farbe in Form einer hexadezimalen Saite und kann als Argument zum Anpassen der Farbschicht übergeben werden. Es unterstützt Formate wie #RGB , #RGBA , #RRGGBB oder #RRGGBBAA . Standardmäßig leer .Image : Der Name der Bilddatei zusammen mit seiner Erweiterung. Um diese Eigenschaft zu nutzen, befolgen Sie bitte die folgenden Schritte:ResourcesImages verwenden möchten.MauiImage nicht erkennt, sollten Sie die Build -Aktion in Embedded resource ändern, um die ordnungsgemäße Funktionalität zu gewährleisten.PreventScreenshot : Entscheiden Sie, ob Benutzer Screenshots Ihrer App aufnehmen können. Standardmäßig wahr .PreventScreenRecording : Steuern Sie, ob Benutzer den Bildschirm während der Verwendung Ihrer App aufzeichnen können. Standardmäßig wahr . void DeactivateScreenSecurityProtection ( ) ;Diese Methode deaktiviert alle Bildschirmsicherheitsschutz.
bool IsProtectionEnabled { get ; }Dieser BOOL prüft, ob der Bildschirmschutz aktiviert ist.
event EventHandler < EventArgs > ? ScreenCaptured ;Der Ereignishandler wird ausgelöst, wenn der Bildschirm erfasst wird, entweder über einen Screenshot oder die Aufnahme auf Android und iOS, jedoch nur für Screenshots unter Windows .
public partial class MainPage : ContentPage
{
private readonly IScreenSecurity _screenSecurity ;
public MainPage ( IScreenSecurity screenSecurity )
{
InitializeComponent ( ) ;
_screenSecurity = screenSecurity ;
}
protected override void OnAppearing ( )
{
base . OnAppearing ( ) ;
// Check if screen security protection is not enabled
if ( ! _screenSecurity . IsProtectionEnabled )
{
// Activate the screen security protection with default settings
_screenSecurity . ActivateScreenSecurityProtection ( ) ;
}
// Attach to the ScreenCaptured event handler
_screenSecurity . ScreenCaptured += OnScreenCaptured ;
/*
// For changing iOS options, follow one of the next examples:
// Example 1: Customize with a specific color
var screenProtectionOptions = new ScreenProtectionOptions
{
HexColor = "#6C4675",
PreventScreenshot = true,
PreventScreenRecording = false
};
// Example 2: Customize with an image
var screenProtectionOptions = new ScreenProtectionOptions
{
Image = "protection_bg.png"
PreventScreenshot = false,
PreventScreenRecording = true
};
_screenSecurity.ActivateScreenSecurityProtection(screenProtectionOptions);
*/
}
protected override void OnDisappearing ( )
{
_screenSecurity . DeactivateScreenSecurityProtection ( ) ;
// Detach from the ScreenCaptured event handler
_screenSecurity . ScreenCaptured -= OnScreenCaptured ;
base . OnDisappearing ( ) ;
}
private async void OnScreenCaptured ( object sender , EventArgs e )
{
string title = "ScreenSecuritySample" ;
string message = "Screen was captured by screenshot or recording." ;
await Shell . Current . DisplayAlert ( title , message , "Ok" ) ;
}
} In der ScreenSecurity -Sample finden Sie eine umfassende und detaillierte Implementierung dieses Plugins und vermitteln Ihnen ein vollständiges Verständnis der Verwendung.
Bitte eröffnen Sie ein Problem, wenn Sie auf Fehler stoßen oder eine PR einreichen, um Verbesserungen oder Korrekturen beizutragen. Ihre Beiträge werden sehr geschätzt.
Die Plugin.maui.screensecurity ist unter MIT -Lizenz lizenziert.