Один из моих последователей в Твиттере недавно спросил меня, как правильно использовать диалоговое окно в своем мобильном приложении Ionic Framework . Хотя я уже создал аналогичную статью, касающуюся создания экрана разблокировки булавки в приложении Ionic Framework, я подумал, что было бы неплохо показать, как сделать это в реальном диалоге.
Используя плагин Apache Cordova PinDialog от Paldom, мы можем использовать собственные диалоги в нашем приложении и принимать пароли.
Начнем с создания нового приложения Ionic Framework с использованием командной строки (Windows) или терминала (Mac / Linux):
ionic start IonicProject blank
cd IonicProject
ionic platform add ios
ionic platform add android
Обратите внимание, что если вы не используете Mac, вы не можете добавлять и собирать для платформы iOS.
После создания проекта пришло время установить плагин Apache Cordova . С проектом в качестве текущего рабочего каталога для вашей командной строки или терминала выполните следующую команду:
cordova plugin add https://github.com/Paldom/PinDialog.git
Теперь технически мы можем начать использовать плагин с необработанным JavaScript, но поскольку Ionic Framework работает на AngularJS , мы собираемся установить набор расширений AngularJS, ngCordova .
В этом уроке я собираюсь использовать версию ngCordova из commit c3634c6 на GitHub. Вы можете быть авантюрным и использовать последнюю версию, но нет никаких гарантий, что это руководство будет работать с ним.
Загрузив ngCordova, скопируйте ng-cordova.min.js в каталог вашего проекта www / js и откройте файл www / index.html, чтобы мы могли сделать его похожим на следующее:
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<meta name="viewport" content="initial-scale=1, maximum-scale=1, user-scalable=no, width=device-width">
<title></title>
<link href="lib/ionic/css/ionic.css" rel="stylesheet">
<link href="css/style.css" rel="stylesheet">
<script src="lib/ionic/js/ionic.bundle.js"></script>
<script src="js/ng-cordova.min.js"></script>
<script src="cordova.js"></script>
<script src="js/app.js"></script>
</head>
<body ng-app="starter">
<ion-pane>
<ion-header-bar class="bar-stable">
<h1 class="title">Ionic Blank Starter</h1>
</ion-header-bar>
<ion-content ng-controller="ExampleController">
</ion-content>
</ion-pane>
</body>
</html>
Обратите внимание, что ng-cordova.min.js был включен перед строкой cordova.js . Это очень важно, потому что если вы этого не сделаете, он может работать неправильно. Также обратите внимание, как ng-controller="ExampleController"
добавляется. Мы собираемся проверить этот контроллер через минуту.
Теперь откройте файл www / js / app.js и измените следующую строку:
angular.module('starter', ['ionic', 'ngCordova'])
Вы увидите, что мы только добавили ngCordova
в массив. Библиотека теперь готова к использованию.
С открытым файлом добавьте следующий контроллер:
.controller("ExampleController", function($ionicPlatform, $cordovaPinDialog) {
var correctPassword = "1337";
$ionicPlatform.ready(function() {
$cordovaPinDialog.prompt('Some message here').then(function(result) {
if(result.input1 === correctPassword) {
alert("The correct password was entered");
} else {
alert("Incorrect password enetered");
}
}, function (error) {
console.error(error);
});
});
})
Поскольку плагин использует собственный код устройства, мы должны сначала обернуть его, $ionicPlatform.ready()
чтобы убедиться, что мы не пытаемся использовать его слишком рано. Вы можете использовать onDeviceReady()
метод вместо.
В ExampleController
статически мы установили пароль для сравнения. Когда пользователь вводит числовое значение и принимает, результат будет сравниваться с нашим статическим паролем и отображать соответствующее сообщение.
Вывод
Теперь вы видели два способа добавления защиты контактов в свое мобильное приложение для Android и iOS от Ionic Framework. В частности, мы только что увидели, как защитить приложение с помощью собственного диалога по сравнению с чистой реализацией CSS и JavaScript.
Видео-версию этой статьи можно увидеть ниже.