x32x01
أدارة أكتب كود
- بواسطة x32x01 ||
مع الانتشار الكبير للتطبيقات واستخدمها بشكل شبه كلي في أداء وتسهيل المهام اليوميه
أحيانا يوجد معلومات حساسة يجب علينا حمايتها كـ مطورين تطبيقات لعدة اسباب منها
نقدر نمنع المستخدم من أخذ screen shot من خلال عده طرق
باستخدام باكج جاهزة اسمها
flutter_windowmanager
او تنفيذها يدويا بالنسبه للـ flutter
بالنسبه لل Android في ملف MainActivity.kt
اكتب الكود التالي
بالنسبه للـ IOS في ملف AppDelegate.swift أكتب الكود التالي
او من خلال اضافه package لـ ملف pubspec.yml
بعدها ضيف هذه السطرين لداله main
أحيانا يوجد معلومات حساسة يجب علينا حمايتها كـ مطورين تطبيقات لعدة اسباب منها
- حماية الخصوصية وذلك من خلال حماية المعلومات الشخصية والحساسه من مشاركتها من قبل الأطراف غير المخوله والذي ليس لها صلاحيات للوصول إليها.
- الامتثال للقوانين في حماية البيانات من خلال الالتزام بالمعايير والإجراءات الصارمة و اللازمة لحماية البيانات.
- حماية الملكية الفكرية وذلك من خلال منع مشاركة ونشر المعلومات او المحتوى المملوك للغير.
نقدر نمنع المستخدم من أخذ screen shot من خلال عده طرق
باستخدام باكج جاهزة اسمها
flutter_windowmanager
او تنفيذها يدويا بالنسبه للـ flutter
بالنسبه لل Android في ملف MainActivity.kt
اكتب الكود التالي
Code:
import android.os.Bundle
import android.view.WindowManager
import io.flutter.embedding.android.FlutterActivity
class MainActivity: FlutterActivity() {
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
// below line prevents the user from taking screenshot or record the screen
window.setFlags(WindowManager.LayoutParams.FLAG_SECURE, WindowManager.LayoutParams.FLAG_SECURE)
}
}
بالنسبه للـ IOS في ملف AppDelegate.swift أكتب الكود التالي
Code:
import UIKit
import Flutter
@UIApplicationMain
@objc class AppDelegate: FlutterAppDelegate {
override func application(
_ application: UIApplication,
didFinishLaunchingWithOptions launchOptions: [UIApplication.LaunchOptionsKey: Any]?
) -> Bool {
GeneratedPluginRegistrant.register(with: self)
// Add the code to prevent screenshots
if let window = self.window {
window.isSecure = true
}
return super.application(application, didFinishLaunchingWithOptions: launchOptions)
}
}
بعدها ضيف هذه السطرين لداله main
Code:
WidgetsFlutterBinding.ensureInitialized();
// implemented using window manager
await FlutterWindowManager.addFlags(FlutterWindowManager.FLAG_SECURE);
runApp(MyApp());