Plugin.Maui.ScreenSecurity memberikan solusi yang mulus untuk mencegah paparan konten, serta memblokir tangkapan layar dan rekaman dalam aplikasi .NET MAUI Anda
| Platform | Versi |
|---|---|
| .Net Maui Android | API 21+ |
| .Net maui ios | iOS 14+ |
| Windows | 10.0.17763+ |
IsProtectionEnabled untuk memeriksa apakah perlindungan layar sudah diaktifkan atau dinonaktifkan.ScreenCaptured , yang memicu pemberitahuan ketika tangkapan layar diambil atau layar direkam.Blazor untuk menampilkan implementasi plugin ini.Klik di sini untuk melihat changelog lengkap!
Plugin.Maui.ScreenSecurity tersedia melalui Nuget, ambil paket terbaru dan instal pada solusi Anda:
Install-Package Plugin.Maui.ScreenSecurity
Inisialisasi plugin di kelas MauiProgram Anda:
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 ( ) ;
} Di file Android.manifest Anda (platform/android) Tambahkan izin berikut:
< uses-permission android : name = " android.permission.DETECT_SCREEN_CAPTURE " />Akhirnya, tambahkan instance default plugin sebagai singleton untuk menyuntikkannya pada kode Anda terlambat:
builder . Services . AddSingleton < IScreenSecurity > ( ScreenSecurity . Default ) ; Penting untuk mengakui bahwa mencegah pengguna mengambil tangkapan layar atau rekaman aplikasi Anda dapat menjadi tugas yang menantang dan mencapai pencegahan lengkap mungkin tidak layak. Perlu dicatat bahwa tidak ada metode yang dapat sepenuhnya menghilangkan kemungkinan layar Anda ditangkap melalui perangkat fisik lain atau potensi pelanggaran di OS.
Penting juga untuk mempertimbangkan dampak pada pengalaman pengguna saat mengimplementasikan salah satu metode ini dan memberikan keseimbangan dengan masalah keamanan aplikasi Anda.
Jika Anda masih menggunakan versi 1.0.0, silakan merujuk ke dokumen Legacy untuk versi sebelumnya.
API Unified yang baru mencakup dua metode: ActivateScreenSecurityProtection() dan DeactivateScreenSecurityProtection() , dengan parameter opsional hanya berlaku untuk platform iOS. Ini juga menyediakan dua properti: IsProtectionEnabled , yang memeriksa apakah perlindungan aktif, dan penangan acara ScreenCaptured , yang memberi tahu kapan tangkapan layar diambil atau layar direkam.
void ActivateScreenSecurityProtection ( ) ;Saat Anda mengaktifkan perlindungan ini, konten aplikasi Anda akan dilindungi saat dikirim ke layar RESTS atau pengalih aplikasi. Ini membantu memastikan bahwa informasi sensitif tidak akan terpapar.
void ActivateScreenSecurityProtection ( bool blurScreenProtection , bool preventScreenshot , bool preventScreenRecording ) ;Metode ini mirip dengan metode sebelumnya, tetapi dengan parameter untuk mengubah nilai default di iOS:
blurScreenProtection : Mengaktifkan/menonaktifkan layar kabur untuk mencegah visibilitas konten di latar belakang. Benar secara default.preventScreenshot : Putuskan apakah pengguna dapat mengambil tangkapan layar aplikasi Anda. Benar secara default.preventScreenRecording : Kontrol apakah pengguna dapat merekam layar saat menggunakan aplikasi Anda. Benar secara default. void ActivateScreenSecurityProtection ( ScreenProtectionOptions screenProtectionOptions ) ; Metode ini mirip dengan metode asli, tetapi mengambil parameter ScreenProtectionOptions . Ini memungkinkan Anda untuk lebih menyesuaikan perlindungan layar dengan menentukan warna atau gambar , bersama dengan tangkapan layar dan perlindungan perekaman layar untuk perangkat iOS.
Catatan : Jika Anda mengatur warna dan gambar , itu hanya akan menerapkan yang Anda nyatakan terlebih dahulu.
Properti ScreenProtectionOptions :
Color : mewakili warna dalam bentuk string heksadesimal dan dapat dilewatkan sebagai argumen untuk menyesuaikan lapisan warna. Ini mendukung format seperti #RGB , #RGBA , #RRGGBB , atau #RRGGBBAA . Kosong secara default.Image : Nama file gambar bersama dengan ekstensi. Untuk memanfaatkan properti ini, silakan ikuti langkah -langkah ini:ResourcesImages .MauiImage , pertimbangkan untuk mengubah tindakan build menjadi Embedded resource untuk memastikan fungsionalitas yang tepat.PreventScreenshot : Putuskan apakah pengguna dapat mengambil tangkapan layar aplikasi Anda. Benar secara default.PreventScreenRecording : Kontrol apakah pengguna dapat merekam layar saat menggunakan aplikasi Anda. Benar secara default. void DeactivateScreenSecurityProtection ( ) ;Metode ini menonaktifkan semua perlindungan keamanan layar.
bool IsProtectionEnabled { get ; }Bool ini memeriksa apakah perlindungan layar diaktifkan.
event EventHandler < EventArgs > ? ScreenCaptured ;Event Handler dipicu ketika layar ditangkap, baik melalui tangkapan layar atau merekam di Android dan iOS, tetapi hanya untuk tangkapan layar di 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" ) ;
}
} Lihat contoh -contoh layar untuk implementasi plugin ini yang komprehensif dan terperinci, memberi Anda pemahaman lengkap tentang penggunaannya.
Silakan membuka masalah jika Anda menemukan bug atau mengirimkan PR untuk menyumbangkan perbaikan atau perbaikan. Kontribusi Anda sangat dihargai.
Plugin.maui.screensecurity dilisensikan di bawah lisensi MIT.