Bu makalemizde Phonegap prompt ekranındaki giriş nesnesini şifre girişi yapılabilecek şekilde nasıl değiştirebileceğimizi göreceğiz aslında birçok sitede tüm prompt ekranlarını password türü olarak değiştirme öneriliyor fakat biz daha farklı şekilde değişiklik yapacağız.
Phonegap prompt ekranındaki giriş nesnesini şifre girişi yapılacak şekilde değiştirme
Phonegap prompt ekranındaki giriş nesnesini şifre girişi yapılabilecek şekilde nasıl değiştirebileceğimizi göreceğiz bu makale aslında birçok sitede tüm prompt ekranlarını password türü olarak değiştirme öneriliyor. Fakat ben ufak bir hile ile prompt ekranını isterseniz password isterseniz text türünde giriş yapmanıza olanak verecek bir değişiklik önericem bakıldığında parametrik olsaydı daha iyi olmazmıydı diyorsunuz evet olurdu ama ufak bir projem için pek kullanılmayacağından bu şekilde ufak bir yol ile çözdüm öncelikle eğer prompt nesnesinin tüm ekranlarda şifreli olarak veri almasını isterseniz şöyle bir değişiklik yapmalısınız.
1 | plugins/org.apache.cordova.dialogs/src/android/Notification.java |
Üstte belirtilen yoldaki dosyayı açıp promptInput
adlı nesneyi bulduktan sonra bir alt satıra alttaki kodu ekleyiniz.
1 | promptInput.setInputType(InputType.TYPE_CLASS_TEXT | InputType.TYPE_TEXT_VARIATION_PASSWORD); |
Bu şekilde bir kod kullanıldığında belirttiğim gibi tüm prompt uyarıları şifreli giriş şeklinde olacak.
Eğer sadece istediğiniz yerde password girişi yapabileceğiniz bir yapı isterseniz ufak bir hile ile halledebiliriz.
Örnek
1 2 3 4 5 6 7 | navigator.notification.prompt( 'Lütfen şifrenizi giriniz', // mesaj callbackFunc, // callback 'Giriş;password', // başlık ['Tamam','İptal'], // buttonAdı 'Şifre' // İpucu ); |
Üstteki kodda belkide hemen dikkatini çekmiştir title parametresine ;password
dedim işte benim ufak hilem burada başlıyor en başta belirttiğim Notification.java
dosyasında promptInput
adlı nesneden sonraki satıra alttaki değişiklikleri eklerseniz istediğiniz yerde password istediğiniz yerde metin girişi yapabileceğiniz bir prompt’unuz olmuş olur.
1 2 3 4 5 6 | if(title.indexOf(";password") > -1){ promptInput.setInputType(InputType.TYPE_CLASS_TEXT | InputType.TYPE_TEXT_VARIATION_PASSWORD); } AlertDialog.Builder dlg = createDialog(cordova); // new AlertDialog.Builder(cordova.getActivity(), AlertDialog.THEME_DEVICE_DEFAULT_LIGHT); dlg.setMessage(message); dlg.setTitle(title != null ? title.split(";")[0] : title); |
Üstteki koddada gördüğünüz gibi eğer title içerisinde ;password tanımlaması yapıldıysa o zaman prompt giriş nesnesi türünü password olarak değiştiriyoruz ve başlığı direk ;password olmayacak şekilde değiştiriyoruz.