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 โปรดดูเอกสารมรดกสำหรับเวอร์ชันก่อนหน้า
API Unified ใหม่รวมถึงสองวิธี: ActivateScreenSecurityProtection() และ DeactivateScreenSecurityProtection() พร้อมพารามิเตอร์เสริมที่ใช้กับแพลตฟอร์ม iOS เท่านั้น นอกจากนี้ยังมีคุณสมบัติสองประการ: IsProtectionEnabled ซึ่งตรวจสอบว่าการป้องกันมีการใช้ ScreenCaptured หรือไม่
void ActivateScreenSecurityProtection ( ) ;เมื่อคุณเปิดใช้งานการป้องกันนี้เนื้อหาของแอปของคุณจะได้รับการปกป้องเมื่อส่งไปยังหน้าจอ Recents หรือ App Switcher สิ่งนี้จะช่วยให้มั่นใจได้ว่าข้อมูลที่ละเอียดอ่อนจะไม่ถูกเปิดเผย
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 : ชื่อของไฟล์ภาพพร้อมกับส่วนขยาย ในการใช้คุณสมบัตินี้โปรดทำตามขั้นตอนเหล่านี้:ResourcesImagesMauiImage ให้พิจารณาเปลี่ยนการดำเนินการสร้างเป็น Embedded resource เพื่อให้แน่ใจว่าการทำงานที่เหมาะสมPreventScreenshot : ตัดสินใจว่าผู้ใช้สามารถใช้ภาพหน้าจอของแอปของคุณได้หรือไม่ จริง โดยค่าเริ่มต้นPreventScreenRecording : ควบคุมว่าผู้ใช้สามารถบันทึกหน้าจอขณะใช้แอพของคุณได้หรือไม่ จริง โดยค่าเริ่มต้น void DeactivateScreenSecurityProtection ( ) ;วิธีนี้ปิดการป้องกันความปลอดภัยของหน้าจอทั้งหมด
bool IsProtectionEnabled { get ; }บูลนี้ตรวจสอบว่าเปิดใช้งานการป้องกันหน้าจอหรือไม่
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 สำหรับการใช้งานที่ครอบคลุมและละเอียดของปลั๊กอินนี้เพื่อให้คุณมีความเข้าใจที่สมบูรณ์เกี่ยวกับการใช้งาน
โปรดเปิดปัญหาหากคุณพบข้อบกพร่องใด ๆ หรือส่ง PR เพื่อสนับสนุนการปรับปรุงหรือแก้ไข การมีส่วนร่วมของคุณได้รับการชื่นชมอย่างมาก
plugin.maui.screensecurity ได้รับใบอนุญาตภายใต้ใบอนุญาต MIT