Plugin.Maui.ScreenSecurity предоставляет беспроблемное решение для предотвращения экспозиции контента, а также блокировки экран и записей в вашем приложении .NET Maui
| Платформа | Версия |
|---|---|
| .Net Maui Android | API 21+ |
| .NET MAUI IOS | iOS 14+ |
| Окна | 10.0.17763+ |
IsProtectionEnabled для проверки того, включена ли защита экрана или отключена.ScreenCaptured -обработчик событий, который запускает уведомления, когда сделан снимок экрана или записан экран.Blazor , чтобы продемонстрировать реализацию этого плагина.Нажмите здесь, чтобы увидеть полную изменение изменений!
Plugin.Maui.ScreenSecurity доступен через Nuget, возьмите последний пакет и установите на своем решении:
Install-Package Plugin.Maui.ScreenSecurity
Инициализируйте плагин в вашем классе MauiProgram :
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 ( ) ;
} В вашем файле Android.manifest (платформы/Android) добавьте следующее разрешение:
< uses-permission android : name = " android.permission.DETECT_SCREEN_CAPTURE " />Наконец, добавьте экземпляр плагина по умолчанию в качестве синглтона, чтобы ввести его в код поздно:
builder . Services . AddSingleton < IScreenSecurity > ( ScreenSecurity . Default ) ; Важно признать, что предотвращение того, чтобы пользователи были сделаны скриншоты или записи вашего приложения, может быть сложной задачей, и достижение полной профилактики может быть невозможным. Стоит отметить, что ни один метод не может полностью устранить вероятность того, что ваш экран будет захвачен через другое физическое устройство или потенциальное нарушение в ОС.
Также важно учитывать влияние на пользовательский опыт при внедрении любого из этих методов и сбоя баланса с проблемами безопасности вашего приложения.
Если вы все еще используете версию 1.0.0, пожалуйста, обратитесь к устаревшим документам для предыдущей версии.
Новый Unified API включает в себя два метода: ActivateScreenSecurityProtection() и DeactivateScreenSecurityProtection() , с дополнительными параметрами, применимыми только к платформе iOS. Он также обеспечивает два свойства: IsProtectionEnabled , который проверяет, является ли активна защита, и обработчик событий ScreenCaptured , который уведомляет, когда занимается скриншот или записан экран.
void ActivateScreenSecurityProtection ( ) ;Когда вы активируете эту защиту, контент вашего приложения будет защищено, когда оно будет отправлен на экран Recests или выключатель приложения. Это помогает гарантировать, что конфиденциальная информация не будет выявлена.
void ActivateScreenSecurityProtection ( bool blurScreenProtection , bool preventScreenshot , bool preventScreenRecording ) ;Этот метод аналогичен предыдущему методу, но с параметрами для изменения значений по умолчанию в iOS:
blurScreenProtection : включить/отключить размытие экрана, чтобы предотвратить видимость содержания в фоновом режиме. Верно по умолчанию.preventScreenshot : решить, могут ли пользователи сделать снимки экрана вашего приложения. Верно по умолчанию.preventScreenRecording : контролировать, могут ли пользователи записывать экран при использовании вашего приложения. Верно по умолчанию. void ActivateScreenSecurityProtection ( ScreenProtectionOptions screenProtectionOptions ) ; Этот метод похож на исходный метод, но принимает параметр ScreenProtectionOptions . Это позволяет дополнительно настраивать защиту экрана, указав цвет или изображение , а также защиту экрана и записи экрана для устройств iOS.
ПРИМЕЧАНИЕ . Если вы установите как цвет , так и изображение , он сначала применит только тот, который вы объявили.
Свойства ScreenProtectionOptions :
Color : представляет цвет в форме шестнадцатеричной струны и может быть передан в качестве аргумента для настройки цветового слоя. Он поддерживает такие форматы, как #RGB , #RGBA , #RRGGBB или #RRGGBBAA . Пусто по умолчанию.Image : имя файла изображения вместе с его расширением. Чтобы использовать это свойство, следуйте этим шагам:ResourcesImages .MauiImage , рассмотрите возможность изменения действия сборки на Embedded resource для обеспечения надлежащей функциональности.PreventScreenshot : решить, могут ли пользователи сделать снимки экрана вашего приложения. Верно по умолчанию.PreventScreenRecording : контролировать, могут ли пользователи записывать экран при использовании вашего приложения. Верно по умолчанию. void DeactivateScreenSecurityProtection ( ) ;Этот метод деактивирует всю защиту безопасности экрана.
bool IsProtectionEnabled { get ; }Этот Bool проверяет, если включена защита экрана.
event EventHandler < EventArgs > ? ScreenCaptured ;Обработчик событий запускается при захвате экрана, либо через скриншот, либо запись на Android и iOS, но только для скриншотов на 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" ) ;
}
} Обратитесь к ScreensecuritySample для комплексной и подробной реализации этого плагина, предоставляя вам полное понимание его использования.
Пожалуйста, не стесняйтесь открывать проблему, если вы столкнетесь с какими -либо ошибками или отправите пиар, чтобы внести свой вклад в улучшения или исправления. Ваш вклад высоко ценится.
Plugin.maui.screensecurity лицензирован по лицензии MIT.