React Native-də skrinşot çəkməyi necə bloklamaq olar?
Mobil Tətbiqdə Ekran Görünüşünün qarşısının alınması
Biz burada React Native-də skrinşotların çəkilməsinin qarşısını necə almaq olar onu öyrənəcəyik. React Native proqramında ekran görüntüsünün çəkilməsinin qarşısını almaq istədiyimiz bir çox istifadə halları ola bilər, məsələn, istifadəçinin ekran görüntüsünü çəkməsini istəmədiyimiz müvəqqəti QR kodu yaratmaq funksiyamız varsa. Burada qeyd edilməli olan bir şey budur ki, məlumatlarınızı qorumaq üçün tamamilə bu funksionallıqdan asılı olmamalısınız. İstifadəçi başqa mobil cihazdan da şəkil çəkə bilər, ona görə də işləri buna uyğun planlaşdırın.
Android tətbiqi üçün ekran görüntüsünün qarşısının alınması
Android sistemi Android Honeycomb (3.0)-da mövcud olan ekran görüntülərini bloklamaq üçün daxili mexanizm təqdim edir. Ekran görüntüsünün alınmasının qarşısını almaq istədiyiniz Fəaliyyətə daxil etmək üçün sözün əsl mənasında bir sətir kod tələb olunur. Bu funksiyanı tamamilə söndürür (ekran görüntüsü əvəzinə istifadəçi gözəl səhv mesajını görəcək). Bundan əlavə, o, həqiqətən əla əlavə olan bütün ekran qeyd seçimlərini bloklayır (yalnız qara ekran çıxış kimi görünür).
Ekranın çəkilişinin qarşısını almaq üçün sadəcə aşağıdakı kod parçasını əlavə etməliyik:
|
getWindow().setFlags( |
|
WindowManager.LayoutParams.FLAG_SECURE, |
|
WindowManager.LayoutParams.FLAG_SECURE |
|
); |
React Native Tətbiqində (Android) ekran görüntüsünü çəkməyi məhdudlaşdırmaq üçün addımlar bunlardır:
1. Layihənizi açın -> android -> proqram -> src -> əsas -> java -> com -> layihənizin adı -> MainActivity.java
2. Aşağıdakı idxalları əlavə edin:
|
import android.view.WindowManager; |
|
import android.os.Bundle; |
3. OnCreate funksiyasını əlavə edin
|
@Override |
|
protected void onCreate(Bundle savedInstanceState) { |
|
super.onCreate(savedInstanceState); |
|
getWindow().setFlags( |
|
WindowManager.LayoutParams.FLAG_SECURE, |
|
WindowManager.LayoutParams.FLAG_SECURE |
|
); |
|
} |
Nəzərə alın ki, köklü(rooted) cihazlar bu mexanizmdən yan keçə bilər. Köklü(rooted) cihazı aşkar etməli və tətbiqinizi söndürməli ola bilərsiniz.