Распространенной проблемой для разработчиков Titanium является реализация аутентификации по отпечатку пальца для Android. Hyperloop (особенно теперь, когда он бесплатный) решил техническую проблему, но уровень пользовательского интерфейса / презентации по-прежнему оставался на усмотрение разработчика.
Недавно я взял Руководство Google по работе с отпечатками пальцев и создал свой собственный Titanium Widget, чтобы решить эту проблему и сделать его переносимым для использования в нескольких других моих приложениях.
ТРЕБОВАНИЯ
- Appcelerator / Титан
- Hyperloop
- Какой-то метод аутентификации по отпечатку пальца.
а. TouchID - https://github.com/appcelerator-modules/ti.touchid
OR
б. Ti.Reprint Hyperloop .aar и common.js - https://github.com/loop-modules/Ti.Reprint
4. Виджет ti.androidfingerprintalertdialog - https://github.com/adamtarmstrong/ti.androidfingerprintalertdialog
НАСТРАИВАТЬ
1–2. Я не буду вдаваться в подробности; есть множество статей, документов и вики, посвященных этим вопросам.
3. Настройте модуль Ti.Reprint Hyperloop в своем приложении (опять же, здесь вы также можете использовать модуль ti.touchid - я просто решил протестировать реализацию Hyperloop)
а. Скопируйте файл github /Ti.Reprint/app/platform/android/core-2.8.3.aar в свой «проект» / app / platform / android / folder.
Reprint - это унифицированная библиотека аутентификации отпечатков пальцев для Android, которая поддерживает несколько API-интерфейсов отпечатков пальцев, включая Imprint и Samsung Pass. Https://github.com/ajalt/reprint
б. Скопируйте файл github /Ti.Reprint/app/lib/Reprint.js в свой «проект» / app / lib / folder.
Эта библиотека предоставляет различные методы для инициализации, аутентификации, проверки, поддерживает ли устройство отпечаток пальца, проверки регистрации отпечатков пальцев и т. Д.
c. Обновите файл tiapp.xml, чтобы ваше приложение могло использовать android.permission.USE_FINGERPRINT
<uses-permission android:name="android.permission.USE_FINGERPRINT"/>
4. Настройте виджет ti.androidfingerprintalertdialog
а. Загрузите / извлеките виджет и скопируйте папку «ti.androidfingerprintalertdialog» в свой «проект / приложение / виджеты / папку.
б. Обновите файл «project» / app / config.json, чтобы добавить виджет.
"dependencies": { "ti.androidfingerprintalertdialog": "1.0" }
ИСПОЛЬЗОВАНИЕ
Добавить виджет в представление (обычно на страницу входа)
index.xml
<Widget id="androidFingerprint" src="ti.androidfingerprintalertdialog" />
index.js
- Требовать и инициализировать модуль Reprint common.js.
var Reprint = require('reprint'); Reprint.initialize();
- Настройте 4 функции для успешной и неудачной обработки, щелкните: UsePassword и щелкните: Cancel
function successCallback(moduleTag) { $.androidFingerprint.success(); //Continue login process } function failureCallback(failureReason, fatal, errorMessage, moduleTag, errorCode) { $.androidFingerprint.failure(); } function fingerprintUsePassword(){ Reprint.cancelAuthentication(); } function fingerprintCancel(){ Reprint.cancelAuthentication(); }
- Запрос отпечатка пальца
Убедитесь, что на устройстве ОБА есть оборудование и зарегистрирован отпечаток пальца.
if (Reprint.isHardwarePresent() && Reprint.hasFingerprintRegistered())
- Запросить аутентификацию и показать виджет AlertDialog и передать 4 метода, которые мы только что создали
Reprint.authenticate(successCallback, failureCallback); $.androidFingerprint.show(fingerprintUsePassword, fingerprintCancel);
Вот и все!
Репозиторий виджетов и полный пример реализации можно найти здесь. Взносы приветствуются!