рдореЛрдмрд╛рдЗрд▓ рдПрдкреНрд▓рд┐рдХреЗрд╢рди, рдпрд╣ рд╡рд┐рдХрд╛рд╕ рдХрд╛ рднрд╡рд┐рд╖реНрдп рдирд╣реАрдВ рд╣реИ, рдпрд╣ рдкрд╣рд▓реЗ рд╕реЗ рдореМрдЬреВрдж рд╣реИред рд╡рд░реНрддрдорд╛рди рдореЗрдВ, 1.2 рдмрд┐рд▓рд┐рдпрди рд▓реЛрдЧ рдореЛрдмрд╛рдЗрд▓ рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд░рд╣реЗ рд╣реИрдВ, рдФрд░ рдпрд╣ рд╕рдВрдЦреНрдпрд╛ рд▓рдЧрд╛рддрд╛рд░ рдмрдврд╝ рд░рд╣реА рд╣реИ (
рд╡рд┐рдХрд┐рдкреАрдбрд┐рдпрд╛ )ред рдЬрд▓реНрдж рд╣реА, рдореЛрдмрд╛рдЗрд▓ рдЙрдкрдХрд░рдгреЛрдВ рдХреА рд╕рдВрдЦреНрдпрд╛ рдЧреНрд░рд╣ рдкрд░ рд▓реЛрдЧреЛрдВ рдХреА рд╕рдВрдЦреНрдпрд╛ рдХреЛ рдкрд╛рд░ рдХрд░ рдЬрд╛рдПрдЧреАред рдпрджрд┐ рдореЛрдмрд╛рдЗрд▓ рдЙрдкрдХрд░рдгреЛрдВ рдХреА рд╕рдВрдЦреНрдпрд╛ рдХреА рд╡реГрджреНрдзрд┐ рджрд░ рдЕрдкрд░рд┐рд╡рд░реНрддрд┐рдд рд░рд╣рддреА рд╣реИ, рддреЛ 2017 рддрдХ 5.1 рдмрд┐рд▓рд┐рдпрди рд▓реЛрдЧ рдЙрдирдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░реЗрдВрдЧреЗред
рд╣рдорд╛рд░реЗ рд▓рд┐рдП, рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдбреЗрд╡рд▓рдкрд░реНрд╕ рдХреЗ рд░реВрдк рдореЗрдВ, рдореЛрдмрд╛рдЗрд▓ рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдХреЛ рдзреНрдпрд╛рди рдореЗрдВ рд░рдЦрддреЗ рд╣реБрдП рд╣рдорд╛рд░реЗ рдПрдкреНрд▓рд┐рдХреЗрд╢рди рд╡рд┐рдХрд╕рд┐рдд рдХрд░рдирд╛ рдорд╣рддреНрд╡рдкреВрд░реНрдг рд╣реИ, рдЕрдЧрд░ рд╣рдо рдЪрд╛рд╣рддреЗ рд╣реИрдВ рдХрд┐ рд╡реЗ рдорд╛рдВрдЧ рдореЗрдВ рд╣реЛрдВред AngularJS рдЯреАрдо рдФрд░ рд╕рдореБрджрд╛рдп рджреЛрдиреЛрдВ рджреНрд╡рд╛рд░рд╛ рд▓рд┐рдЦрд┐рдд рдореЛрдмрд╛рдЗрд▓ рд╕рдорд░реНрдерди рдХреЛ рд▓рд╛рдЧреВ рдХрд░рддрд╛ рд╣реИред
рдЗрд╕ рд▓реЗрдЦ рдореЗрдВ, рд╣рдо рдореЛрдмрд╛рдЗрд▓ рдПрдкреНрд▓рд┐рдХреЗрд╢рди рд╡рд┐рдХрд╕рд┐рдд рдХрд░рдиреЗ рдореЗрдВ рдкрд╛рдардХреЛрдВ рдХреЛ рдЕрдиреБрднрд╡ рджреЗрдиреЗ рдХреЗ рд▓рд┐рдП рджреЛ рдЕрд▓рдЧ-рдЕрд▓рдЧ рддрд░реАрдХреЛрдВ рд╕реЗ рдХрд╛рдо рдХрд░реЗрдВрдЧреЗред
рдЙрддреНрддрд░рджрд╛рдпреА рд╡реЗрдм рдЕрдиреБрдкреНрд░рдпреЛрдЧ
AngularJS рдХреЗ рд╕рд╛рде рдореЛрдмрд╛рдЗрд▓ рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдмрдирд╛рдиреЗ рдХрд╛ рд╕рдмрд╕реЗ рдЖрд╕рд╛рди рддрд░реАрдХрд╛ рд╣реИ, рдкрд░рд┐рдЪрд┐рдд рдФрд░ рдкрд╕рдВрджреАрджрд╛ рдЯреВрд▓, HTML рдФрд░ CSS рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛, AngularJS рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдкреВрд░реА рддрд░рд╣ рдХрд╛рд░реНрдпрд╛рддреНрдордХ рдореЛрдмрд╛рдЗрд▓ рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдмрдирд╛рдирд╛ред AngularJS рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдкрд╣рд▓реЗ рд╕реЗ рд╣реА HTML рдкрд░ рдЖрдзрд╛рд░рд┐рдд рд╣реИрдВ, рдЬреЛ рд╣рдореЗрдВ рд╣рдорд╛рд░реА рдкрд░рд┐рдпреЛрдЬрдирд╛рдУрдВ рдХреЗ рд▓рд┐рдП рд╡рд┐рднрд┐рдиреНрди рдЙрдкрдХрд░рдгреЛрдВ рдХреЗ рд╕рд╛рде рдмрд╛рддрдЪреАрдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рд╡рд╛рд╕реНрддреБрдХрд▓рд╛ рдХреА рдкрд╕рдВрдж рдХреЗ рд╕рд╛рде рдЫреЛрдбрд╝ рджреЗрддрд╛ рд╣реИред
рдмрд╛рддрдЪреАрдд
рдбреЗрд╕реНрдХрдЯреЙрдк рдЕрдиреБрдкреНрд░рдпреЛрдЧреЛрдВ рдХреЗ рд▓рд┐рдП,
ng-click
рдирд┐рд░реНрджреЗрд╢ рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рдЖрд╡реЗрджрди рдХреЗ рд╕рд╛рде рдмрд╛рддрдЪреАрдд рдФрд░ рдкрд╣рд▓реЗ рд╕реЗ рд╣реА рдЙрдкрд▓рдмреНрдз рд╣реИрдВред
AngularJS рд╕рдВрд╕реНрдХрд░рдг 1.2.0 рдФрд░ рдЙрдЪреНрдЪрддрд░ рдХреЗ рд╕рд╛рде рд╢реБрд░реВ, рдЕрдм рд╣рдорд╛рд░реЗ рдкрд╛рд╕ рдирдП рдЙрдкрдХрд░рдгреЛрдВ рдХреЗ рд╕рд╛рде рдмрд╛рддрдЪреАрдд рдХрд░рдиреЗ рдХреА рдХреНрд╖рдорддрд╛ рд╣реИ, рдирдП рдореЙрдбреНрдпреВрд▓ рдХреЗ рд▓рд┐рдП рдзрдиреНрдпрд╡рд╛рдж -
ngTouch
ред рдпрд╣ рдкреБрд╕реНрддрдХрд╛рд▓рдп рдПрдВрдЧреБрд▓рд░рдЬреЗрдПрд╕ рдХреЗ рдореВрд▓ рдореЗрдВ рдирд╣реАрдВ рдмрдирд╛рдпрд╛ рдЧрдпрд╛ рд╣реИ, рдЗрд╕реЗ рд╕реНрдерд╛рдкрд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдПред
рд╕реНрдерд╛рдкрдирд╛
ngTouch рдХрдИ рдорд╛рдпрдиреЛрдВ рдореЗрдВ рд╕реНрдерд╛рдкрд┐рдд рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред рдЗрд╕ рдореЙрдбреНрдпреВрд▓ рдХреЛ рд╕реНрдерд╛рдкрд┐рдд рдХрд░рдиреЗ рдХрд╛ рд╕рдмрд╕реЗ рдЖрд╕рд╛рди рддрд░реАрдХрд╛ рдЗрд╕реЗ
angular.org рд╕реЗ рдбрд╛рдЙрдирд▓реЛрдб рдХрд░рдирд╛ рд╣реИред
рдбрд╛рдЙрдирд▓реЛрдб рд╕рдВрд╡рд╛рдж рдореЗрдВ рдПрдХреНрд╕реНрдЯреНрд░рд╛ рдкрд╛рдПрдВ, рдФрд░ рдбрд╛рдЙрдирд▓реЛрдб рдкреГрд╖реНрда рдкрд░ рдЬрд╛рдПрдВ, рдЕрдкрдиреЗ рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдХреЗ рд▓рд┐рдП рдЙрдкрд▓рдмреНрдз рдХрд┐рд╕реА рднреА рд╕реНрдерд╛рди рдкрд░ ng-touch.js рдлрд╝рд╛рдЗрд▓ рдбрд╛рдЙрдирд▓реЛрдб рдХрд░реЗрдВред
рдЗрд╕рдХреЗ рдмрдЬрд╛рдп, рдЖрдк
angular-touch
рд╕реНрдерд╛рдкрд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП Bower рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ:
$ bower install angular-touch --save
рдХрд┐рд╕реА рднреА рд╕реНрдерд┐рддрд┐ рдореЗрдВ, рд╣рдореЗрдВ рдЗрд╕ рд▓рд╛рдЗрдмреНрд░реЗрд░реА рдХрд╛ рдПрдХ рд▓рд┐рдВрдХ index.html рдлрд╝рд╛рдЗрд▓ рдореЗрдВ рдЬреЛрдбрд╝рдирд╛ рд╣реЛрдЧрд╛:
<script src="/bower_components/angular-touch/angular-touch.js"></script>
рдФрд░ рдЕрдВрдд рдореЗрдВ, рдЖрдкрдХреЛ рд╣рдорд╛рд░реЗ рдЖрд╡реЗрджрди рдХреЗ рд▓рд┐рдП рдирд┐рд░реНрднрд░рддрд╛ рдХреЗ рд░реВрдк рдореЗрдВ
ngTouch
рдХрдиреЗрдХреНрдЯ рдХрд░рдирд╛ рд╣реЛрдЧрд╛:
angular.module('myApp', ['ngTouch']);
рдЕрдм рдЖрдк ngTouch рд▓рд╛рдЗрдмреНрд░реЗрд░реА рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред
ngTouch
рдХреНрд▓рд┐рдХ-рдЖрдзрд╛рд░рд┐рдд рдШрдЯрдирд╛рдУрдВ рдХреЛ рдЯреНрд░рд┐рдЧрд░ рдХрд░рддреЗ рд╕рдордп рдореЛрдмрд╛рдЗрд▓ рдмреНрд░рд╛рдЙрдЬрд╝рд░ рдЕрдкрдиреЗ рдбреЗрд╕реНрдХрдЯреЙрдк рд╕рдордХрдХреНрд╖реЛрдВ рд╕реЗ рдХреБрдЫ рдЕрд▓рдЧ рддрд░реАрдХреЗ рд╕реЗ рдХрд╛рдо рдХрд░рддреЗ рд╣реИрдВред рдореЛрдмрд╛рдЗрд▓ рдмреНрд░рд╛рдЙрдЬрд╝рд░, рдХреНрд▓рд┐рдХ рдХрд░рдиреЗ рдХреА рдХреНрд░рд┐рдпрд╛ рдХрд╛ рдкрддрд╛ рд▓рдЧрд╛рдиреЗ рдХреЗ рдмрд╛рдж, 300 рдорд┐ред рдпрд╛ рдЗрд╕рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдХреБрдЫ рдкреНрд░рддреАрдХреНрд╖рд╛ рдХрд░реЗрдВ, рдпрд╣ рддрдп рдХрд░рдиреЗ рд╕реЗ рдкрд╣рд▓реЗ рдХрд┐ рдХрд┐рд╕ рд╡рд┐рд╢реЗрд╖ рдШрдЯрдирд╛ рдХреЛ рдЙрдард╛рдпрд╛ рдЬрд╛рдирд╛ рд╣реИ, рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рд╕реНрдХреНрд░реАрди рдкрд░ рдбрдмрд▓-рдХреНрд▓рд┐рдХ рдХрд░рдХреЗред рдЗрд╕ рджреЗрд░реА рдХреЗ рдмрд╛рдж, рдмреНрд░рд╛рдЙрдЬрд╝рд░ рдПрдХ
click
рдИрд╡реЗрдВрдЯ рдХреЛ рдлрд╛рдпрд░ рдХрд░рддрд╛ рд╣реИред
рдЗрд╕ рджреЗрд░реА рд╕реЗ рдЖрдкрдХреЗ рдЖрд╡реЗрджрди рдХреА рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛ рджреЗрд░ рд╕реЗ рд╣реЛ рд╕рдХрддреА рд╣реИред рд╣рдореЗрдВ
click
рдЗрд╡реЗрдВрдЯ рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░рдиреЗ рдХреЗ рдмрдЬрд╛рдп рдЗрд╕рд╕реЗ рдмрдЪрдиреЗ рдХреЗ рд▓рд┐рдП
touch
рдЗрд╡реЗрдВрдЯ рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░рдирд╛ рдЪрд╛рд╣рд┐рдПред
рдкрд╣рд▓рд╛ рдХреНрд▓рд┐рдХ рд╣реЛрдиреЗ рдХреЗ рдмрд╛рдж, рдмреНрд░рд╛рдЙрдЬрд╝рд░ click
рдЗрд╡реЗрдВрдЯ рдХреА рдлрд╛рдпрд░рд┐рдВрдЧ рдореЗрдВ рджреЗрд░реА рдХрд░рддрд╛ рд╣реИ, рдЕрдЧрд▓реА рдХрд╛рд░реНрд░рд╡рд╛рдИ рдХреА рдкреНрд░рддреАрдХреНрд╖рд╛ рдХрд░рддрд╛ рд╣реИред ngTouch
рдЖрдкрдХреЗ рд▓рд┐рдП рдЗрд╕ рдХреНрд░рд┐рдпрд╛ рдХреЛ рд╕рдВрднрд╛рд▓рдиреЗ рдХрд╛ рдзреНрдпрд╛рди ngTouch
редрдирддреАрдЬрддрди,
ng-click
рдирд┐рд░реНрджреЗрд╢ рдореЛрдмрд╛рдЗрд▓ рдмреНрд░рд╛рдЙрдЬрд╝рд░ рдкрд░ рдбреЗрд╕реНрдХрдЯреЙрдк рдмреНрд░рд╛рдЙрдЬрд╝рд░ рдХреЗ рд╕рдорд╛рди рд╣реА рдХрд╛рдо рдХрд░рддрд╛ рд╣реИред
<button ng-click="save()">Save</button>
ngTouch
рджреЛ рдирдП рдирд┐рд░реНрджреЗрд╢ рднреА рдЬреЛрдбрд╝рддрд╛ рд╣реИ: рд╕реНрд╡рд╛рдЗрдк рдирд┐рд░реНрджреЗрд╢ред рдпреЗ рдирд┐рд░реНрджреЗрд╢ рд╣рдореЗрдВ рд╕реНрдХреНрд░реАрди рдХреЗ рдмрд╛рдПрдВ рдпрд╛ рджрд╛рдПрдВ рдХрд┐рдирд╛рд░реЗ рдкрд░ рдирд┐рд░реНрджреЗрд╢рд┐рдд рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдХреА рдЙрдВрдЧрд▓реА рдХреЗ рдЖрдВрджреЛрд▓рдиреЛрдВ рдХреЛ рдЯреНрд░реИрдХ рдХрд░рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрддреЗ рд╣реИрдВред рд╡реЗ рдЙрдкрдпреЛрдЧреА рд╣реЛрддреЗ рд╣реИрдВ рдЬрдм рд╣рдо рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдХреЗ рдЗрд╢рд╛рд░реЛрдВ рдХреЛ рдЯреНрд░реИрдХ рдХрд░рдирд╛ рдЪрд╛рд╣рддреЗ рд╣реИрдВ, рдЬреЛ рдХрд┐ рдЧреИрд▓рд░реА рдореЗрдВ рдЕрдЧрд▓реА рдлреЛрдЯреЛ рдпрд╛ рд╣рдорд╛рд░реЗ рдЖрд╡реЗрджрди рдХреЗ рдЕрдЧрд▓реЗ рд╣рд┐рд╕реНрд╕реЗ рддрдХ рд╕реНрдХреНрд░реЙрд▓ рдХрд░рдирд╛ рдЪрд╛рд╣рд┐рдПред
ngSwipeLeft
рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдХреА рдЙрдВрдЧрд▓реА рдХреЗ рджрд╛рдИрдВ рд╕реЗ рдмрд╛рдИрдВ рдУрд░ рдХреЗ рдЖрдВрджреЛрд▓рдиреЛрдВ рдХреЛ рдЯреНрд░реИрдХ рдХрд░рддрд╛ рд╣реИ, рдФрд░
ngSwipeRight
рдмрд╛рдПрдВ рд╕реЗ рджрд╛рдПрдВ рдЙрдВрдЧрд▓реА рдХреЗ рдирд┐рд░реНрджреЗрд╢ рдХреЛ рдЯреНрд░реИрдХ рдХрд░рддрд╛ рд╣реИред
NgSwipe * рдирд┐рд░реНрджреЗрд╢реЛрдВ рдХреА рдПрдХ рдЕрдЪреНрдЫреА рд╡рд┐рд╢реЗрд╖рддрд╛ рдпрд╣ рд╣реИ рдХрд┐ рд╡реЗ рд╕реНрдкрд░реНрд╢ рдЙрдкрдХрд░рдгреЛрдВ рдХреЗ рд╕рд╛рде-рд╕рд╛рде рдорд╛рдЙрд╕ рдИрд╡реЗрдВрдЯ рдЬреИрд╕реЗ рдХрд┐ рдХреНрд▓рд┐рдХ рдпрд╛ рдореВрд╡рдореЗрдВрдЯ рдХреЗ рд╕рд╛рде рднреА рдХрд╛рдо рдХрд░рддреЗ рд╣реИрдВредngSwipeLeft
рдФрд░
ngSwipeRight
рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛ рдХрд╛рдлреА рдЖрд╕рд╛рди рд╣реИред рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдорд╛рди рд▓реЗрдВ рдХрд┐ рд╣рдорд╛рд░реЗ рдкрд╛рд╕ рдИрдореЗрд▓ рд╕рдВрджреЗрд╢реЛрдВ рдХреА рдПрдХ рд╕реВрдЪреА рд╣реИ, рдФрд░ рд╣рдо рдкреНрд░рддреНрдпреЗрдХ рдкрддреНрд░ рдХреЗ рд▓рд┐рдП рдЙрдкрд▓рдмреНрдз рдХрд╛рд░реНрдпреЛрдВ рдХреЛ рджрд┐рдЦрд╛рдирд╛ рдЪрд╛рд╣рддреЗ рд╣реИрдВ, рдЬреИрд╕рд╛ рдХрд┐ рд▓реЛрдХрдкреНрд░рд┐рдп MailboxApp рдореЛрдмрд╛рдЗрд▓ рдореЗрд▓ рдХреНрд▓рд╛рдЗрдВрдЯ рдореЗрдВ рд╣реИред
рд╣рдо рдЕрдкрдиреА рд╕рдВрджреЗрд╢ рд╕реВрдЪреА рдХреЗ рд╕рд╛рде рд╕рдВрдпреЛрдЬрди рдореЗрдВ рд╕реНрд╡рд╛рдЗрдк рдирд┐рд░реНрджреЗрд╢реЛрдВ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдЖрд╕рд╛рдиреА рд╕реЗ рдЗрд╕ рдХрд╛рд░реНрдпрдХреНрд╖рдорддрд╛ рдХреЛ рд▓рд╛рдЧреВ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред рдЬрдм рд╣рдо рдЕрдкрдиреЗ рд╕рдВрджреЗрд╢реЛрдВ рдХреА рд╕реВрдЪреА рджрд┐рдЦрд╛рддреЗ рд╣реИрдВ, рддреЛ рд╣рдо рдЗрд╕ рдореЗрд▓ рд╕рдВрджреЗрд╢ рдХреЗ рд╕рдВрднрд╛рд╡рд┐рдд рдХрд╛рд░реНрдпреЛрдВ рдХреЛ рджрд┐рдЦрд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдПрдХ рдирд┐рд╢реНрдЪрд┐рдд рджрд┐рд╢рд╛ рдореЗрдВ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдХреЗ рдЗрд╢рд╛рд░реЛрдВ рдХреЛ рдЯреНрд░реИрдХ рдХрд░рддреЗ рд╣реИрдВред
рдЬрдм рд╣рдо рдПрдХ рдореЗрд▓ рд╕рдВрджреЗрд╢ рдХреЗ рд▓рд┐рдП рдХрд╛рд░реНрд░рд╡рд╛рдИ рджрд┐рдЦрд╛рддреЗ рд╣реИрдВ, рддреЛ рд╣рдо рдЗрд╕ рдорд╛рдорд▓реЗ рдореЗрдВ рд╡рд┐рдкрд░реАрдд рджрд┐рд╢рд╛ рдореЗрдВ рдирд┐рд░реНрджреЗрд╢рд┐рдд рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдЗрд╢рд╛рд░реЛрдВ рдХреЛ рдЯреНрд░реИрдХ рдХрд░рдиреЗ рдореЗрдВ рд╕рдХреНрд╖рдо рдХрд░рддреЗ рд╣реИрдВ, рдЗрд╕ рдорд╛рдорд▓реЗ рдореЗрдВ, рдкрд╣рд▓реЗ рдкреНрд░рджрд░реНрд╢рд┐рдд рдХрд┐рдП рдЧрдП рдХрд╛рд░реНрдпреЛрдВ рдХреЛ рдЫрд┐рдкрд╛рдиреЗ рдХреЗ рд▓рд┐рдПред
<ul> <li ng-repeat="mail in emails"> <div ng-show="!mail.showActions" ng-swipe-left="mail.showActions=true"> <div class="from"> : <span>{{ mail.from }}</span> </div> <div class="body"> {{ mail.body }} </div> </div> <div ng-show="mail.showActions" ng-swipe-right="mail.showActions=false"> <ul class="actions"> <li><button></button></li> <li><button></button></li> </ul> </div> </li> </ul>
рдЖрдк рдореВрд▓ рд▓реЗрдЦ рдХреЗ рд╕рд╛рде рд╕рд╛рдЗрдЯ рдкрд░ рдПрдХ рд▓рд╛рдЗрд╡ рдЙрджрд╛рд╣рд░рдг рджреЗрдЦ рд╕рдХрддреЗ рд╣реИрдВред$ рд╕реНрд╡рд╛рдЗрдк рд╕реЗрд╡рд╛
$swipe
рдХрд╛ рдЙрдкрдпреЛрдЧ рд╕рдВрд╡реЗрджреА рдПрдиреАрдореЗрд╢рди рдХреА рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдХреЛ рдареАрдХ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред
$swipe
рдЖрдкрдХреЛ рд╣реЛрд▓реНрдб рд╕реЗ рдЕрдореВрд░реНрдд рдФрд░ рдШрдЯрдирд╛рдУрдВ рдХреЛ рдЙрдЪреНрдЪ-рд╕реНрддрд░реАрдп рд╡реНрдпрд╡рд╣рд╛рд░ рдореЗрдВ рдЦреАрдВрдЪрдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрддреА рд╣реИред
$swipe
рдореЗрдВ рдПрдХрд▓
bind()
рд╡рд┐рдзрд┐ рд╣реИред
bind()
рд╡рд┐рдзрд┐ рдЙрд╕ рдСрдмреНрдЬреЗрдХреНрдЯ рдХреЛ рд╕реНрд╡реАрдХрд╛рд░ рдХрд░рддреА рд╣реИ рдЬрд┐рд╕рдореЗрдВ рдХрд╛рд░реНрд░рд╡рд╛рдИ рд╕рдВрд▓рдЧреНрди рдХреА рдЬрд╛рдПрдЧреА, рд╕рд╛рде рд╣реА рдЪрд╛рд░ рдЗрд╡реЗрдВрдЯ рд╣реИрдВрдбрд▓рд░ рдХреЗ рд╕рд╛рде рдПрдХ рдСрдмреНрдЬреЗрдХреНрдЯред
рдЗрди рдИрд╡реЗрдВрдЯ рд╣реИрдВрдбрд▓рд░реНрд╕ рдХреЛ рдСрдмреНрдЬреЗрдХреНрдЯ рдХреЗ рдирд┐рд░реНрджреЗрд╢рд╛рдВрдХ рд╡рд╛рд▓реЗ рдПрдХ рдкреИрд░рд╛рдореАрдЯрд░ рдХреЗ рд╕рд╛рде рдмреБрд▓рд╛рдпрд╛ рдЬрд╛рдПрдЧрд╛, рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдЬреИрд╕реЗ рдХрд┐
{ x: 200, y: 300 }
ред
рдпреЗ рдЪрд╛рд░ рдЗрд╡реЗрдВрдЯ рд╣реИрдВрдбрд▓рд░ рдЗрд╡реЗрдВрдЯ рд╣реИрдВрдбрд▓рд░ рдХреЛ рдкрд░рд┐рднрд╛рд╖рд┐рдд рдХрд░рддреЗ рд╣реИрдВ:
рдкреНрд░рд╛рд░рдВрдн
start
рдЗрд╡реЗрдВрдЯ рддрдм рдЙрдард╛рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ рдЬрдм рдХрд┐рд╕реА
touchstart
рдпрд╛
touchstart
рдЗрд╡реЗрдВрдЯ рдХреЛ
touchstart
ред рдЗрд╕ рдШрдЯрдирд╛ рдХреЗ рдмрд╛рдж,
$swipe
рд╕реЗрд╡рд╛ рдиреЗ
touchmove
рдФрд░
mousemove
рд▓рд┐рдП рд╣реИрдВрдбрд▓рд░ рд╕реНрдерд╛рдкрд┐рдд
mousemove
ред рдЭреВрдареА рдЯреНрд░рд┐рдЧрд░рд┐рдВрдЧ рдХреЛ рд░реЛрдХрдиреЗ рдХреЗ рд▓рд┐рдП, рдпрд╣ рдИрд╡реЗрдВрдЯ рдХреЗрд╡рд▓ рддрдм рдЙрдард╛рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ рдЬрдм рдХреБрд▓ рджреВрд░реА рддрдп рдХреА рдЧрдИ рд╣реЛ, рдПрдХ рдирд┐рд╢реНрдЪрд┐рдд рдиреНрдпреВрдирддрдо рдорд╛рди рд╕реЗ рдЕрдзрд┐рдХ рд╣реЛред
рдЬреИрд╕реЗ рд╣реА рдХреБрд▓ рджреВрд░реА рдЗрд╕ рдиреНрдпреВрдирддрдо рд╕реЗ рдЕрдзрд┐рдХ рд╣реЛ рдЬрд╛рддреА рд╣реИ, рджреЛ рдХрд╛рд░реНрдпреЛрдВ рдореЗрдВ рд╕реЗ рдПрдХ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ:
- рдпрджрд┐ рдКрд░реНрдзреНрд╡рд╛рдзрд░ рдСрдлрд╕реЗрдЯ рдХреНрд╖реИрддрд┐рдЬ рд╕реЗ рдЕрдзрд┐рдХ рд╣реИ, рддреЛ рдмреНрд░рд╛рдЙрдЬрд╝рд░ рдПрдХ
scroll
рдИрд╡реЗрдВрдЯ рдХреЛ рдлрд╛рдпрд░ рдХрд░рддрд╛ рд╣реИред - рдпрджрд┐ рдХреНрд╖реИрддрд┐рдЬ рдСрдлрд╕реЗрдЯ рдКрд░реНрдзреНрд╡рд╛рдзрд░ рд╕реЗ рдЕрдзрд┐рдХ рд╣реИ, рддреЛ рдХрд╛рд░реНрд░рд╡рд╛рдИ рдХреЛ рдПрдХ рд╕реНрдкрд░реНрд╢ рдЗрд╢рд╛рд░рд╛ рдорд╛рдирд╛ рдЬрд╛рддрд╛ рд╣реИ, рдФрд░
move
рдФрд░ end
рдШрдЯрдирд╛рдУрдВ рдХрд╛ рдЙрдкрдпреЛрдЧ рдЖрдЧреЗ рдХреА рдУрд░ рдЗрд╢рд╛рд░рд╛ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ
рдЪрд╛рд▓
mousemove
рдпрд╛
touchmove
рдмрд╛рдж
move
рдЗрд╡реЗрдВрдЯ рддрдм рд╣реЛрддрд╛ рд╣реИ рдЬрдм рдХреЗрд╡рд▓
$swipe
рд╕реЗрд╡рд╛ рд╕реЗ рдпрд╣ рдирд┐рд░реНрдзрд╛рд░рд┐рдд рд╣реЛрддрд╛ рд╣реИ рдХрд┐ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдХреЗ рдХрд╛рд░реНрдп рдПрдХ рдЗрд╢рд╛рд░реЗ рд╣реИрдВ, рдФрд░ рдпрд╣ рдЗрд╢рд╛рд░рд╛ рдЕрднреА рддрдХ рдкреВрд░рд╛ рдирд╣реАрдВ рд╣реБрдЖ рд╣реИред
рдЕрдВрдд
end
рдШрдЯрдирд╛ рдХреЛ рдЙрдард╛рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ
touchend
рдпрд╛
mouseup
рдШрдЯрдирд╛ рдХреЗ рдмрд╛рдж
touchend
, рдкрд╣рд▓реЗ рдЙрдард╛рдП рдЧрдП
move
рдШрдЯрдирд╛ рдХреЗ рдмрд╛рджред
рд░рджреНрдж рдХрд░рдирд╛
touchcancel
рдШрдЯрдирд╛ рдХреЛ
touchcancel
рдЬрд╛рдиреЗ рдХреЗ рдмрд╛рдж
cancel
рдШрдЯрдирд╛ рдХреЛ рдЙрдард╛рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рдпрд╛ рдЬрдм рдкреГрд╖реНрда рдХреЛ рд╕реНрдХреНрд░реЙрд▓ рдХрд░рдирд╛
start
рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рддреЛ
start
рдШрдЯрдирд╛ рдХреЗ рдмрд╛рдж
start
ред
рдЗрд╕рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╣реБрдП, рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдЖрдк рдПрдХ рдирд┐рд░реНрджреЗрд╢ рдмрдирд╛ рд╕рдХрддреЗ рд╣реИрдВ рдЬреЛ рдЖрдкрдХреЛ рдЗрд╢рд╛рд░реЛрдВ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рд╕реНрд▓рд╛рдЗрдбрд░ рдХреЛ рдирд┐рдпрдВрддреНрд░рд┐рдд рдХрд░рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрддрд╛ рд╣реИ, рдЬрд┐рд╕рд╕реЗ рдЖрдк рд╕реНрдХреНрд░реАрди рдкрд░ рдкреНрд░рджрд░реНрд╢рд┐рдд рд╕реНрд▓рд╛рдЗрдб рдХреЛ рдирд┐рдпрдВрддреНрд░рд┐рдд рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред рдореЛрдмрд╛рдЗрд▓ рдЙрдкрдХрд░рдгреЛрдВ рдкрд░ рдЗрд╢рд╛рд░реЛрдВ рдХреЛ рд╕рдВрднрд╛рд▓рдиреЗ рдХреЗ рд▓рд┐рдП, рд╣рдо рдЕрдкрдиреЗ рд╕реНрд╡рдпрдВ рдХреЗ рддрд░реНрдХ рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдЗрдВрдЯрд░рдлрд╝реЗрд╕ рдкрд░рдд рдХреЛ рдкреНрд░рджрд░реНрд╢рд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП
$swipe
рд╕реЗрд╡рд╛ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░реЗрдВрдЧреЗред
angular.module('myApp') .directive('mySlideController', ['$swipe', function($swipe) { return { restrict: 'EA', link: function(scope, ele, attrs, ctrl) { var startX, pointX; $swipe.bind(ele, { 'start': function(coords) { startX = coords.x; pointX = coords.y; }, 'move': function(coords) { var delta = coords.x - pointX;
рдХреЛрдгреАрдп рдЗрд╢рд╛рд░реЗ рдФрд░ рдЯрдЪ рд╕реНрдХреНрд░реАрди рдЗрд╢рд╛рд░реЗ
Angular-gestures
рдПрдХ рдЕрд▓рдЧ рдХреЛрдгреАрдп рдореЙрдбреНрдпреВрд▓ рд╣реИ рдЬреЛ рд╣рдореЗрдВ рд╣рдорд╛рд░реЗ рдПрдВрдЧреБрд▓рд░рдЬреЗрдПрд╕ рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдореЗрдВ рд╕реНрдкрд░реНрд╢ рдЗрд╢рд╛рд░реЛрдВ рдХреЛ рд╕рдВрднрд╛рд▓рдиреЗ рдХреА рдХреНрд╖рдорддрд╛ рджреЗрддрд╛ рд╣реИред рдпрд╣ рдмрд╣реБрдд рд▓реЛрдХрдкреНрд░рд┐рдп рдФрд░ рд╕рд┐рджреНрдз
рд╣рдереМрдбрд╝реЗ рдкрд░ рдЖрдзрд╛рд░рд┐рдд рд╣реИред рдкреБрд╕реНрддрдХрд╛рд▓рдпред
рд╣рдереМрдбрд╝рд╛.рдЬреИрдм рдкреБрд╕реНрддрдХрд╛рд▓рдп рд╣рдореЗрдВ рдХрдИ рдШрдЯрдирд╛рдУрдВ рдХреЗ рд╕рд╛рде рдкреНрд░рджрд╛рди рдХрд░рддреЗ рд╣реИрдВ рдЬреЛ рд╕рд╛рдорд╛рдиреНрдп рдЯрдЪрд╕реНрдХреНрд░реАрди рдШрдЯрдирд╛рдПрдБ рд╣реИрдВ:
- рдирд▓
- DoubleTap
- рдХрдбрд╝реА рдЪреЛрдЯ
- рдЦреАрдВрдЪрдирд╛
- рдЪреБрдЯрдХреА
- рдШреБрдорд╛рдПрдБ
angular-gestures
рд▓рд╛рдЗрдмреНрд░реЗрд░реА рдЖрдкрдХреЛ рдПрдВрдЧреБрд▓рд░рдЬреЗрдПрд╕ рдирд┐рд░реНрджреЗрд╢реЛрдВ рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рдЗрди рдШрдЯрдирд╛рдУрдВ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрддреА рд╣реИред рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдпреЗ рд╕рднреА рдирд┐рд░реНрджреЗрд╢ рдЙрдкрдпреЛрдЧ рдХреЗ рд▓рд┐рдП рдЙрдкрд▓рдмреНрдз рд╣реЛ рдЬрд╛рддреЗ рд╣реИрдВ:
- hmDoubleTap
- hmDragStart
- hmDrag
- hmDragUp
- hmDragDown
- hmDragLeft
- hmDragRight
- hmDragEnd
- hmHold
- hmPinch
- hmPinchIn
- hmPinchOut
- hmRelease
- hmRotate
- hmSwipe
- hmSwipeUp
- hmSwipeDown
- hmSwipeLeft
- hmSwipeRight
- hmTap
- hmTouch
- hmTransformStart
- hmTransform
- hmTransformEnd
рдХреЛрдгреАрдп-рдЗрд╢рд╛рд░реЛрдВ рдХреЛ рд╕реНрдерд╛рдкрд┐рдд рдХрд░реЗрдВ
angular-gestures
рд▓рд╛рдЗрдмреНрд░реЗрд░реА рдХреЛ рд╕реНрдерд╛рдкрд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рдЕрдкрдиреЗ рдЖрд╡реЗрджрди рдХреЗ рдореБрдЦреНрдп рдкреГрд╖реНрда рдкрд░ рдЖрдкрдХреЛ рдХреЗрд╡рд▓ рдЬреЗрд╕реНрдЪрд░.рдЬреЗрдПрд╕ рдлрд╝рд╛рдЗрд▓ (рдпрд╛ рдЬреЗрд╕реНрдЪрд░.рдорд┐рди.рдЬреЗрдПрд╕) рд╢рд╛рдорд┐рд▓ рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИред
рдЖрдк рд╕реАрдзреЗ
GitHub рд░рд┐рдкреЙрдЬрд┐рдЯрд░реА рд╕реЗ рдЗрд╢рд╛рд░реЛрдВ рдХреЛ рдбрд╛рдЙрдирд▓реЛрдб рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ, рдпрд╛ рдЗрд╕рдХреЗ рд▓рд┐рдП Bower рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред
рдмреЛрд╡рд░ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░
angular-gestures
рдХреЛ рд╕реНрдерд╛рдкрд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рдирд┐рдореНрди рдХрдорд╛рдВрдб рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░реЗрдВ:
$ bower install --save angular-gestures
рдЕрдВрдд рдореЗрдВ, рд╣рдореЗрдВ рдЕрдкрдиреЗ рдХреЛрдгреАрдп рдЕрдиреБрдкреНрд░рдпреЛрдЧ рдХреЗ рд▓рд┐рдП рдХреЛрдгреАрдп
angular-gestures
рдирд┐рд░реНрднрд░рддрд╛ рдирд┐рд░реНрднрд░рддрд╛ рдирд┐рд░реНрдзрд╛рд░рд┐рдд рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ:
angular.module('myApp', ['angular-gestures']);
рдХреЛрдгреАрдп-рдЗрд╢рд╛рд░реЛрдВ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛
рдЗрди рд╕рдмрд╕реЗ рдКрдкрд░, рдХреЛрдгреАрдп рдЗрд╢рд╛рд░реЛрдВ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдЖрд╕рд╛рди рд╣реИред рдЗрд╢рд╛рд░реЗ рд╕рд┐рд░реНрдл рдХреЛрдгреАрдп рдирд┐рд░реНрджреЗрд╢ рд╣реИрдВ рдЬреЛ рдЖрдк рдЕрдкрдиреЗ рдЖрд╡реЗрджрди рдореЗрдВ рдХрд┐рд╕реА рднреА рдЕрдиреНрдп рдирд┐рд░реНрджреЗрд╢ рдХреА рддрд░рд╣ рдЙрдкрдпреЛрдЧ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред
рдорд╛рди рд▓реЗрдВ рдХрд┐ рд╣рдореЗрдВ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдХреЛ рдлреЛрдЯреЛ рдЧреИрд▓рд░реА рдореЗрдВ рдлрд╝реЛрдЯреЛ рдХреЛ рдШреБрдорд╛рдиреЗ, рдХрдо рдХрд░рдиреЗ рдФрд░ рд╡рд┐рд╕реНрддрд╛рд░ рдХрд░рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИред рд╣рдо рдЖрд╡рд╢реНрдпрдХ рдЗрд╢рд╛рд░реЛрдВ рдХреЛ рд╕рдВрднрд╛рд▓рдиреЗ рдХреЗ рд▓рд┐рдП Hammer.js рд▓рд╛рдЗрдмреНрд░реЗрд░реА рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред
рдЗрд╕ рдЙрджрд╛рд╣рд░рдг рдореЗрдВ, рд╣рдо рд╕реНрдХреНрд░реАрди рдХреЛ рдЯреИрдк рдХрд░рдиреЗ рдХреЗ рдЬрд╡рд╛рдм рдореЗрдВ рдПрдХ рдпрд╛рджреГрдЪреНрдЫрд┐рдХ рдмрджрд▓рд╛рд╡ рд╕реЗрдЯ рдХрд░реЗрдВрдЧреЗред рдЗрд╕реЗ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рд╣рдордиреЗ рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд HTML рдХреЛрдб рд▓рд┐рдЦрд╛, рдЗрд╕ рдмрд╛рд░
hm-tap
рдирд┐рд░реНрджреЗрд╢ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ред
<div id="photowrapper"> <div class="cardProps" hm-tap="tapped($event)"> <div class="tradingcard"> <img src="/img/ari.jpeg" alt="" /> <span>Ari</span> </div> <div class="tradingcard"> <img src="/img/nate.jpeg" alt="" /> <span>Nate</span> </div> </div> </div>
рдЗрд╕ HTML рдореЗрдВ рдЖрдкрдХреЛ рдЕрдкрдиреЗ рд▓рд┐рдП рдХреБрдЫ рдирдпрд╛ рдирд╣реАрдВ рдорд┐рд▓реЗрдЧрд╛, рд╕рдВрднрд╡рддрдГ рдЗрд╕ рддрдереНрдп рдХреЗ рдЕрд▓рд╛рд╡рд╛ рдХрд┐ рдпрд╣рд╛рдБ
hm-tap
рдирд┐рд░реНрджреЗрд╢ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИред рдпрд╣
angular-gestures
рдирд┐рд░реНрджреЗрд╢ рдЫрд╡рд┐ рдкрд░ рджрд╕реНрддрдХ рджреЗрддреЗ рд╕рдордп рдХрд╛рдо рдХрд░реЗрдЧрд╛ред
Hammer.js
рдирд┐рд░реНрджреЗрд╢ рдХреЛрдгреАрдп рднрд╛рд╡реЛрдВ рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ, рдЗрд╕рд▓рд┐рдП рдЖрдк рдлрд╝рдВрдХреНрд╢рди рдХреЛ рдХреЙрд▓ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ рдФрд░ рдЙрдирдХреЗ рдЕрдВрджрд░ рд╡рд┐рднрд┐рдиреНрди рдХрд╛рд░реНрдп рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ (рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП,
Hammer.js
ng-click
рдореЗрдВ рд╕рдорд╛рди) рдФрд░ рдЗрд╕рдХреЗ рдЕрд▓рд╛рд╡рд╛ рд╡реЗ
Hammer.js
рд╕реЗрдЯрд┐рдВрдЧреНрд╕ рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред
рдКрдкрд░ рдХреЗ рдЙрджрд╛рд╣рд░рдг рдореЗрдВ, рд╣рдордиреЗ рдПрдХ рдлрд╝рдВрдХреНрд╢рди рдХреЛ рдмреБрд▓рд╛рдпрд╛ рдерд╛ рдЬрд┐рд╕реЗ рд╣рдорд╛рд░реЗ
$scope
рдореЗрдВ
tapped()
рд░реВрдк рдореЗрдВ рдкрд░рд┐рднрд╛рд╖рд┐рдд рдХрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛ред рдЖрдк рдиреАрдЪреЗ рдЗрд╕ рдлрд╝рдВрдХреНрд╢рди рдХреЗ рд▓рд┐рдП рдХреЛрдб рджреЗрдЦ рд╕рдХрддреЗ рд╣реИрдВ:
$scope.tapped = function($event) { var ele = $event.target; var x = Math.floor(Math.random() * 200) + 1, y = Math.floor(Math.random() * 100) + 1, z = Math.floor(Math.random() * 6) + 1, rot = Math.floor(Math.random()*360)+1; $(ele).css({ 'transform': "translate3d("+x+"px,"+y+"px,"+z+"px)" + "rotate("+rot+"deg)" }); }
angular-gestures
рд▓рд╛рдЗрдмреНрд░реЗрд░реА рд╡рд┐рд╢реЗрд╖
$event
рддрд░реНрдХ рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рдИрд╡реЗрдВрдЯ рдСрдмреНрдЬреЗрдХреНрдЯ рддрдХ рдкрд╣реБрдВрдЪ рдкреНрд░рджрд╛рди рдХрд░рддреА рд╣реИред рд╣рдо рдпрд╣ рдирд┐рд░реНрдзрд╛рд░рд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдХрд┐ рд╣рдорд╛рд░реЗ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдиреЗ рдХрд┐рд╕ рддрддреНрд╡ рдкрд░ рдХреНрд▓рд┐рдХ рдХрд┐рдпрд╛ рд╣реИ рдФрд░ рдЬрдм рд╣рдо рдЕрдкрдиреЗ рддрддреНрд╡ рдХреЗ рд╕рд╛рде рд╡рд┐рднрд┐рдиреНрди рдЪрд╛рд▓реЗрдВ рдХрд░рдХреЗ "рдкрд╛рдЧрд▓ рд╣реЛ рд╕рдХрддреЗ рд╣реИрдВ" рдпрд╣ рдирд┐рд░реНрдзрд╛рд░рд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рд╣рдо
target
рдИрд╡реЗрдВрдЯ рд╕рдВрдкрддреНрддрд┐ (
$event.target
) рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╣реИрдВред
рдЖрдк рдореВрд▓ рд▓реЗрдЦ рдХреЗ рд╕рд╛рде рд╕рд╛рдЗрдЯ рдкрд░ рдПрдХ рд▓рд╛рдЗрд╡ рдЙрджрд╛рд╣рд░рдг рджреЗрдЦ рд╕рдХрддреЗ рд╣реИрдВредрдХреЙрд░реНрдбреЛрд╡рд╛ рдХреЗ рд╕рд╛рде рдореВрд▓ рдПрдкреНрд▓рд┐рдХреЗрд╢рди
рдХреЙрд░реНрдбреЛрд╡ рдПрдХ рдлреНрд░реА-рдЯреВ-рдпреВрдЬрд╝, рдУрдкрди-рд╕реЛрд░реНрд╕ рдлреНрд░реЗрдорд╡рд░реНрдХ рд╣реИ рдЬреЛ рдЖрдкрдХреЛ рджреЗрд╢реА рдХреЛрдб рдХреЗ рдмрдЬрд╛рдп рдорд╛рдирдХ рд╡реЗрдм рдПрдкреАрдЖрдИ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдореЛрдмрд╛рдЗрд▓ рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдмрдирд╛рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрддрд╛ рд╣реИред рдпрд╣ рд╣рдореЗрдВ рдЙрджреНрджреЗрд╢реНрдп-рд╕реА рдпрд╛ рдЬрд╛рд╡рд╛ (рдХреНрд░рдорд╢рдГ рдЖрдИрдУрдПрд╕ рдпрд╛ рдПрдВрдбреНрд░реЙрдЗрдб рдХреЗ рд▓рд┐рдП) рдореЗрдВ рд▓рд┐рдЦрдиреЗ рдХреЗ рдмрдЬрд╛рдп рдПрдЪрдЯреАрдПрдордПрд▓, рдЬрд╛рд╡рд╛рд╕реНрдХреНрд░рд┐рдкреНрдЯ, рд╕реАрдПрд╕рдПрд╕, рдФрд░ рдПрдВрдЧреБрд▓рд░рдЬреЗрдПрд╕ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдореЛрдмрд╛рдЗрд▓ рдПрдкреНрд▓рд┐рдХреЗрд╢рди рд▓рд┐рдЦрдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрддрд╛ рд╣реИред

рдХреЙрд░реНрдбреЛрд╡рд╛ рдЬрд╛рд╡рд╛рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдПрдкреАрдЖрдИ рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рджреЗрд╢реА рдЙрдкрдХрд░рдгреЛрдВ рддрдХ рдкрд╣реБрдВрдЪ рдкреНрд░рджрд╛рди рдХрд░рддрд╛ рд╣реИ, рдЬреЛ рд╣рдореЗрдВ рдбрд┐рд╡рд╛рдЗрд╕ рд╕реЗ рдбреЗрдЯрд╛ рдкреНрд░рд╛рдкреНрдд рдХрд░рдиреЗ рдпрд╛ рдЕрдкрдиреЗ рдХреИрдорд░реЗ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдЬреИрд╕реЗ рдбрд┐рд╡рд╛рдЗрд╕-рд╡рд┐рд╢рд┐рд╖реНрдЯ рд╕рдВрдЪрд╛рд▓рди рдХрд░рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрддрд╛ рд╣реИред рдЗрд╕реЗ рдкреНрд▓рдЧрдЗрди рд╕рдкреЛрд░реНрдЯ рдХреЗ рд╕рд╛рде рдмрдирд╛рдпрд╛ рдЧрдпрд╛ рд╣реИ рддрд╛рдХрд┐ рдЖрдк рд╡рд┐рд╢реЗрд╖рдЬреНрдЮреЛрдВ рджреНрд╡рд╛рд░рд╛ рдмрдирд╛рдП рдЧрдП рд╡рд┐рднрд┐рдиреНрди рдХреЙрд░реНрдбреЛрд╡рд╛ рдкреНрд▓рдЧ рдЗрди рдХрд╛ рд▓рд╛рдн рдЙрдард╛ рд╕рдХреЗрдВ, рдЬреИрд╕реЗ рдСрдбрд┐рдпреЛ рдбрд┐рд╡рд╛рдЗрд╕ рддрдХ рдкрд╣реБрдБрдЪрдиреЗ рдХреЗ рд▓рд┐рдП рдкреНрд▓рдЧ-рдЗрди рдпрд╛ рдмрд╛рд░рдХреЛрдб рдХреЛ рд╕реНрдХреИрди рдХрд░рдирд╛ред
рдХреЙрд░реНрдбреЛрд╡рд╛ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХреЗ рд▓рд╛рднреЛрдВ рдореЗрдВ рд╕реЗ рдПрдХ рдпрд╣ рд╣реИ рдХрд┐ рд╣рдо рдореЛрдмрд╛рдЗрд▓ рдкрд░реНрдпрд╛рд╡рд░рдг рдХрд╛ рд╕рдорд░реНрдерди рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рд▓рд┐рдЦреЗ рдЧрдП AngularJS рдХреЛрдб рдХрд╛ рдкреБрди: рдЙрдкрдпреЛрдЧ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред рдмреЗрд╢рдХ, рдЗрд╕рдХрд╛ рдЙрдкрдпреЛрдЧ рдХреБрдЫ рдореБрджреНрджреЛрдВ рдХреЛ рдЙрдард╛рддрд╛ рд╣реИ рдЬрд┐рдирдХрд╛ рд╣рдо рд╕рд╛рдордирд╛ рдХрд░реЗрдВрдЧреЗ, рдЬреИрд╕реЗ рдХрд┐ рдкреНрд░рджрд░реНрд╢рди рдФрд░ рджреЗрд╢реА рдШрдЯрдХреЛрдВ рддрдХ рд╕реАрдзреА рдкрд╣реБрдВрдЪред
рд╕реНрдерд╛рдкрдирд╛
рдХреЙрд░реНрдбреЛрд╡рд╛ рд╡рд┐рддрд░рдг рдПрдХ
npm
рдкреИрдХреЗрдЬ рдХреЗ рд░реВрдк рдореЗрдВ рд╡рд┐рддрд░рд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рдЗрд╕рд▓рд┐рдП рдЖрдкрдХреЛ рдЗрд╕реЗ рд╕реНрдерд╛рдкрд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП
npm
рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИред
рдпрджрд┐ рдЖрдкрдХреЗ рдкрд╛рд╕
npm
рд╕реНрдерд╛рдкрд┐рдд рдирд╣реАрдВ рд╣реИ, рддреЛ рдЬрд╛рдВрдЪреЗрдВ рдХрд┐ рдХреНрдпрд╛ рдЖрдкрдиреЗ
node
рд╕реНрдерд╛рдкрд┐рдд рдХрд┐рдпрд╛ рд╣реИред NodeJS рд╕реНрдерд╛рдкрд┐рдд рдХрд░рдиреЗ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдЬрд╛рдирдХрд╛рд░реА рдХреЗ рд▓рд┐рдП,
"рдЕрдЧрд▓реЗ рдЪрд░рдг" рдЕрдзреНрдпрд╛рдп рдкрдврд╝реЗрдВред
$ npm install -g cordova

рдХреЙрд░реНрдбреЛрд╡рд╛ рдкреИрдХреЗрдЬ рдореЗрдВ рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдмрдирд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдПрдХ рдЬрдирд░реЗрдЯрд░ рд╢рд╛рдорд┐рд▓ рд╣реИ рдФрд░ рдпрд╣ рдХреЙрд░реНрдбреЛрд╡рд╛ рдХреЛ рдЙрдкрд▓рдмреНрдз рдХрд░рд╛рддрд╛ рд╣реИред
рдХреЙрд░реНрдбреЛрд╡рд╛ рдХреЗ рд╕рд╛рде рд╢реБрд░реБрдЖрдд рдХрд░рдирд╛
рдХреЙрд░реНрдбреЛрд╡рд╛ рдХреЗ рд╕рд╛рде рд╢реБрд░реБрдЖрдд рдХрд░рдирд╛ рдЖрд╕рд╛рди рд╣реИред рд╣рдо рдЕрдкрдиреЗ рдХреЙрд░реНрдбреЛрд╡рд╛ рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдХреЗ рд╢реБрд░реБрдЖрддреА рдмрд┐рдВрджреБ рдХреЛ рдмрдирд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдЬрдирд░реЗрдЯрд░ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░реЗрдВрдЧреЗред рд╣рдо рдЕрдкрдиреЗ рдЖрд╡реЗрджрди рдХреЛ GapApp рдХрд╣реЗрдВрдЧреЗред
рдЬрдирд░реЗрдЯрд░ рддреАрди рдорд╛рдкрджрдВрдбреЛрдВ рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░рддрд╛ рд╣реИ:
- рдкреНрд░реЛрдЬреЗрдХреНрдЯ-рдбрд╛рдпрд░реЗрдХреНрдЯрд░реА (рдЖрд╡рд╢реНрдпрдХ) - рд╡рд╣ рдирд┐рд░реНрджреЗрд╢рд┐рдХрд╛ рдЬрд┐рд╕рдореЗрдВ рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдмрдирд╛рдпрд╛ рдЬрд╛рдПрдЧрд╛ред
- рдкреИрдХреЗрдЬ-рдЖрдИрдбреА - рдкреНрд░реЛрдЬреЗрдХреНрдЯ рдЖрдИрдбреА (рд░рд┐рд╡рд░реНрд╕ рдбреЛрдореЗрди рд╢реИрд▓реА рдореЗрдВ рдкреИрдХреЗрдЬ рдХрд╛ рдирд╛рдо)
- рдирд╛рдо - рдкреИрдХреЗрдЬ рдХрд╛ рдирд╛рдо (рдЖрд╡реЗрджрди рдирд╛рдо)
$ cordova create gapapp io.fullstack.gapapp "GapApp"
gapapp
рдирд┐рд░реНрджреЗрд╢рд┐рдХрд╛ рдЗрд╕ рд▓рд╛рдЗрди (рдкрд╣рд▓реЗ рдкреИрд░рд╛рдореАрдЯрд░ рджреНрд╡рд╛рд░рд╛ рдкрд░рд┐рднрд╛рд╖рд┐рдд) рдкреИрдХреЗрдЬ рдкрд╣рдЪрд╛рдирдХрд░реНрддрд╛
io.fullstack.gapapp
рдФрд░ рдкреНрд░реЛрдЬреЗрдХреНрдЯ рдирд╛рдо
GappApp
рд╕рд╛рде
GappApp
ред

рдХреЙрд░реНрдбреЛрд╡рд╛ рдЯреАрдо рдиреЗ рдЗрд╕реЗ рдкреНрд▓рдЧрдЗрдиреНрд╕ рдореЗрдВ рддреЛрдбрд╝ рджрд┐рдпрд╛, рдЗрд╕рд▓рд┐рдП рд╣рдореЗрдВ рдЙрди рдкреНрд▓реЗрдЯрдлрд╛рд░реНрдореЛрдВ рдХреЛ рдХрдиреЗрдХреНрдЯ рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдирд╣реАрдВ рд╣реИ рдЬрд┐рдирдХреЗ рд▓рд┐рдП рд╣рдо рд╡рд┐рдХрд╕рд┐рдд рдирд╣реАрдВ рд╣реЛрдВрдЧреЗ (рдЬреЛ рдЕрдиреНрдп рдкреНрд▓реЗрдЯрдлрд╛рд░реНрдореЛрдВ рдХрд╛ рд╕рдорд░реНрдерди рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рд╡рд┐рдХрд╕рд┐рдд рдХрд░рдирд╛ рдЖрд╕рд╛рди рдмрдирд╛рддрд╛ рд╣реИ)ред рдЗрд╕рдХрд╛ рдорддрд▓рдм рд╣реИ рдХрд┐ рд╣рдореЗрдВ рдЕрдкрдиреА рдкрд░рд┐рдпреЛрдЬрдирд╛ рдХреЛ рд╕реНрдкрд╖реНрдЯ рд░реВрдк рд╕реЗ рдХрд┐рд╕реА рднреА рдкреНрд▓реЗрдЯрдлрд╝реЙрд░реНрдо рдкрд░ рдЬреЛрдбрд╝рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ рдЬрд┐рд╕реЗ рд╣рдо рд╕рдорд░реНрдерди рдХрд░рдиреЗ рдХреА рдпреЛрдЬрдирд╛ рдмрдирд╛рддреЗ рд╣реИрдВред
рд╣рдорд╛рд░реА рдкрд░рд┐рдпреЛрдЬрдирд╛ рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░рдирд╛ рдЬрд╛рд░реА рд░рдЦрдиреЗ рдХреЗ рд▓рд┐рдП, рдЖрдкрдХреЛ рдЗрд╕рдХреА рдирд┐рд░реНрджреЗрд╢рд┐рдХрд╛ рдореЗрдВ рдЬрд╛рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ, рдЬреИрд╕рд╛ рдХрд┐ рдЖрдЧреЗ рдХреА рдЖрдЬреНрдЮрд╛рдУрдВ рдХреЛ рдЗрд╕рд╕реЗ рдирд┐рд╖реНрдкрд╛рджрд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдП:
$ cd gapapp/
рд╣рдо рдЖрдИрдУрдПрд╕ рдХреЗ рд▓рд┐рдП рдЕрдкрдиреЗ рдЖрд╡реЗрджрди рдХрд╛ рдирд┐рд░реНрдорд╛рдг рдХрд░реЗрдВрдЧреЗ (рд╣рд╛рд▓рд╛рдВрдХрд┐ рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдЕрдиреНрдп рдкреНрд▓реЗрдЯрдлрд╛рд░реНрдореЛрдВ рдХреЗ рд▓рд┐рдП рд╕рдорд╛рди рд╣реИ)ред IOS рдкреНрд▓реЗрдЯрдлрд╝реЙрд░реНрдо рдЬреЛрдбрд╝рдиреЗ рдХреЗ рд▓рд┐рдП, рдЖрдкрдХреЛ рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рдХреЙрд░реНрдбреЛрд╡рд╛ рдХрдорд╛рдВрдб рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдкреНрд░реЛрдЬреЗрдХреНрдЯ рдореЗрдВ рдЕрдкрдирд╛ рд╕рдорд░реНрдерди рдЬреЛрдбрд╝рдирд╛ рд╣реЛрдЧрд╛:
$ cordova platform add ios
рдХрд╛рдо рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЕрдЧрд▓реЗ рдЖрджреЗрд╢ рдХреЗ рд▓рд┐рдП, рдЖрдкрдХреЛ рдпрд╣ рд╕реБрдирд┐рд╢реНрдЪрд┐рдд рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ рдХрд┐ рдЖрдкрдХреЗ рдкрд╛рд╕ рдЖрдИрдУрдПрд╕ рдПрд╕рдбреАрдХреЗ рдФрд░ рдПрдХреНрд╕рдХреЛрдб рд╕реНрдерд╛рдкрд┐рдд рд╣реИред рдЖрдк iOS SDK рдФрд░ Xcode рдХреЛ
developer.apple.com рд╕реЗ рдбрд╛рдЙрдирд▓реЛрдб рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред
рдПрдХ рдмрд╛рд░ рд╕рднреА рдЖрд╡рд╢реНрдпрдХ рд╕реНрдерд╛рдкрд┐рдд рд╣реЛ рдЬрд╛рдиреЗ рдХреЗ рдмрд╛рдж, рдЖрдк рдПрдХ рд╕рд╛рдзрд╛рд░рдг рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдмрдирд╛ рд╕рдХрддреЗ рд╣реИрдВ:
$ cordova build ios
рдЕрдм, Apple рдбреЗрд╡рд▓рдкрд░ рдХреЗ рдЯреВрд▓ рдореЗрдВ рдХреБрдЫ рдХрдард┐рдирд╛рдЗрдпрд╛рдБ рд╣реИрдВ, рдФрд░ рд╣рдореЗрдВ рдЕрдкрдиреЗ рд╕реНрдерд╛рдиреАрдп iOS рд╕рд┐рдореНрдпреБрд▓реЗрдЯрд░ рдкрд░ рдХрд╛рдо рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЕрдкрдиреЗ рд▓рд┐рдП рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдХреЛ рд╕рдорд╛рдпреЛрдЬрд┐рдд рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИред
рдЖрдЗрдП рд╣рдорд╛рд░реЗ рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдХреА рдирд┐рд░реНрджреЗрд╢рд┐рдХрд╛ рдкрд░ рдЬрд╛рдПрдВ, рдЬрд╣рд╛рдВ рд╣рдореЗрдВ
platforms
рдирд┐рд░реНрджреЗрд╢рд┐рдХрд╛ рдорд┐рд▓рддреА рд╣реИред рдЗрд╕рдХреЗ рдЕрдВрджрд░ рд╣рдо
ios
рдбрд╛рдпрд░реЗрдХреНрдЯрд░реА рдкрд╛рдПрдВрдЧреЗ рдЬреЛ рдХрд┐ рдкрд╣рд▓реЗ рд╕реЗ
platform add
рдХрдорд╛рдВрдб рджреНрд╡рд╛рд░рд╛ рдмрдирд╛рдИ рдЧрдИ рдереАред

Xcode рдореЗрдВ, рдкрд╣рд▓реЗ рд╕реЗ рдмрдирд╛рдИ рдЧрдИ рдкрд░рд┐рдпреЛрдЬрдирд╛ рдЦреЛрд▓реЗрдВред рд╕реБрдирд┐рд╢реНрдЪрд┐рдд рдХрд░реЗрдВ рдХрд┐ рдЖрдкрдХрд╛ рдХреЛрдб Xcode рдХреЗ рд╢реАрд░реНрд╖ рдкрд░ рдордВрдЪ рдкрд╣рдЪрд╛рдирдХрд░реНрддрд╛ рдореЗрдВ рд╕реВрдЪреАрдмрджреНрдз рд╣реИред

рдирд┐рд╖реНрдкрд╛рджрд┐рдд рдХрд░реЗрдВ рдкрд░ рдХреНрд▓рд┐рдХ рдХрд░реЗрдВред
рдЙрд╕рдХреЗ рдмрд╛рдж, рдЖрдкрдХреЛ рдЕрдкрдиреЗ рд╕рд┐рдореНрдпреБрд▓реЗрдЯрд░ рдореЗрдВ рдХреЙрд░реНрдбреЛрд╡рд╛ рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдХреА рд╢реБрд░реБрдЖрдд рджреЗрдЦрдиреА рдЪрд╛рд╣рд┐рдПред

рдХреЙрд░реНрдбреЛрд╡рд╛ рдХреЗ рд╕рд╛рде рд╡рд┐рдХрд╛рд╕ рдкреНрд░рдХреНрд░рд┐рдпрд╛
рдХреЙрд░реНрдбреЛрд╡рд╛ рдореЗрдВ рдлреЛрдирдЧреИрдк рдкрд░рд┐рдпреЛрдЬрдирд╛ рд╢рд╛рдорд┐рд▓ рд╣реИ, рдЬрд┐рд╕реЗ рдЕрдкрд╛рдЪреЗ рдлрд╛рдЙрдВрдбреЗрд╢рди рджреНрд╡рд╛рд░рд╛ рдЕрдиреБрдореЛрджрд┐рдд рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИред рдЗрд╕ рдкрд░рд┐рдпреЛрдЬрдирд╛ рдореЗрдВ рдПрдХ рдХрдорд╛рдВрдб-рд▓рд╛рдЗрди рдЯреВрд▓ рд╢рд╛рдорд┐рд▓ рд╣реИ рдЬрд┐рд╕рдХрд╛ рдЙрдкрдпреЛрдЧ рд╣рдо рдЕрдкрдиреЗ рдирд┐рд░реНрдорд╛рдг рд╕реЗ рд▓реЗрдХрд░ рдкрд░рд┐рдирд┐рдпреЛрдЬрди рддрдХ рд╣рдорд╛рд░реЗ рдЕрдиреБрдкреНрд░рдпреЛрдЧ рдХреЗ рд╕рд╛рде рд╕рд╣рднрд╛рдЧрд┐рддрд╛ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдХрд░реЗрдВрдЧреЗред
рдордВрдЪ
рдлрд┐рд▓рд╣рд╛рд▓, рд╣рдордиреЗ рдПрдХ рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдмрдирд╛рдпрд╛ рд╣реИ рдФрд░ рдЗрд╕рдореЗрдВ рдПрдХ рдкреНрд▓реЗрдЯрдлрд╝реЙрд░реНрдо рдЬреЛрдбрд╝рд╛ рд╣реИ (рд╣рдорд╛рд░реЗ рдорд╛рдорд▓реЗ рдореЗрдВ, рдЖрдИрдУрдПрд╕)ред
рдХреЙрд░реНрдбреЛрд╡ рдЕрдиреБрдкреНрд░рдпреЛрдЧреЛрдВ рдХреЗ рд▓рд┐рдП, рдЙрдкрд▓рдмреНрдз рдкреНрд▓реЗрдЯрдлрд╛рд░реНрдореЛрдВ рдХреА рд╕реВрдЪреА рдЙрдкрдпреЛрдЧ рдХрд┐рдП рдЧрдП рд╡рд┐рдХрд╛рд╕ рдкрд░реНрдпрд╛рд╡рд░рдг рдкрд░ рдирд┐рд░реНрднрд░ рдХрд░рддреА рд╣реИред рдореИрдХ рдкрд░, рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рдкреНрд▓реЗрдЯрдлреЙрд░реНрдо рдЙрдкрд▓рдмреНрдз рд╣реИрдВ:
- рдЖрдИрдУрдПрд╕
- рдПрдВрдбреНрд░реЙрдпрдб
- рдмреНрд▓реИрдХрдмреЗрд░реА 10
- рдлрд╝рд╛рдпрд░рдлрд╝реЙрдХреНрд╕ рдУрдПрд╕
рд╡рд┐рдВрдбреЛрдЬ рдкрд░, рд╣рдо рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рдкреНрд▓реЗрдЯрдлрд╛рд░реНрдореЛрдВ рдХреЗ рд▓рд┐рдП рд╡рд┐рдХрд╕рд┐рдд рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ:
- рдПрдВрдбреНрд░реЙрдпрдб
- рд╡рд┐рдВрдбреЛрдЬ рдлреЛрди 7
- рд╡рд┐рдВрдбреЛрдЬ рдлреЛрди 8
- Windows8
- рдмреНрд▓реИрдХрдмреЗрд░реА 10
- рдлрд╝рд╛рдпрд░рдлрд╝реЙрдХреНрд╕ рдУрдПрд╕
рдпрджрд┐ рдЖрдк рдЬрд╛рдирдирд╛ рдЪрд╛рд╣рддреЗ рд╣реИрдВ рдХрд┐ рдХреМрди рд╕реЗ рдкреНрд▓реЗрдЯрдлрд╝реЙрд░реНрдо рдЙрдкрд▓рдмреНрдз рд╣реИрдВ рдФрд░ рд╕реНрдерд╛рдкрд┐рдд рд╣реИрдВ, рддреЛ рдЖрдкрдХреЛ рдЬрд╛рдБрдЪрдиреЗ рдХреЗ рд▓рд┐рдП
platforms
рдХрдорд╛рдВрдб рдЪрд▓рд╛рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ:
$ cordova platforms ls
рдкреНрд▓реЗрдЯрдлрд╝реЙрд░реНрдо рдЬреЛрдбрд╝рдиреЗ рдХреЗ рд▓рд┐рдП, рдЖрдк
platform add
рдХрдорд╛рдВрдб (рдЬреИрд╕рд╛ рд╣рдордиреЗ рдКрдкрд░ рдХрд┐рдпрд╛ рдерд╛) рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред
$ cordova platform add android
рдкреНрд▓реЗрдЯрдлрд╛рд░реНрдореЛрдВ рдореЗрдВ рд╕реЗ рдПрдХ рдХреЛ рд╣рдЯрд╛рдиреЗ рдХреЗ рд▓рд┐рдП, рдЖрдк
rm
рдЙрдкрдпреЛрдЧ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ рдпрд╛ рдХрдорд╛рдВрдб
remove
рд╕рдХрддреЗ рд╣реИрдВред
$ cordova platform rm blackberry10
рдкреНрд▓рдЧ-рдЗрди
рдХреЙрд░реНрдбреЛрд╡рд╛ рдХреЛ рдореЙрдбреНрдпреВрд▓ рдХреЗ рдЖрдзрд╛рд░ рдкрд░ рдмрдирд╛рдпрд╛ рдЧрдпрд╛ рд╣реИ, рдЬреЛ рдкреНрд▓рдЧ-рдЗрди рд╕рд┐рд╕реНрдЯрдо рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдХрд┐рд╕реА рднреА рдЕрддрд┐рд░рд┐рдХреНрдд рдХрд╛рд░реНрдпрдХреНрд╖рдорддрд╛ рдХреЛ рдЬреЛрдбрд╝рдирд╛ рд╕рдВрднрд╡ рдмрдирд╛рддрд╛ рд╣реИред рдХрд┐рд╕реА рдкреНрд░реЛрдЬреЗрдХреНрдЯ рдореЗрдВ
plugin add
рд▓рд┐рдП, рд╣рдо
plugin add
рдХрдорд╛рдВрдб рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░реЗрдВрдЧреЗ:
$ cordova plugin add https://git-wip-us.apache.org/repos/asf/cordova-plugin-geolocation.git
рд╣рдо рдкреНрд▓рдЧ
plugins ls
рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдЗрдВрд╕реНрдЯреЙрд▓ рдХрд┐рдП рдЧрдП рдкреНрд▓рдЧрдЗрдиреНрд╕ рдХреА рд╕реВрдЪреА рджреЗрдЦ рд╕рдХрддреЗ рд╣реИрдВ:
$ cordova plugins ls [ 'org.apache.cordova.geolocation' ]
рдЕрдВрдд рдореЗрдВ, рдЖрдк
plugin rm
рдХрдорд╛рдВрдб рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдХрд┐рд╕реА рднреА рдкреНрд▓рдЧрдЗрди рдХреЛ рд╣рдЯрд╛ рд╕рдХрддреЗ рд╣реИрдВ:
$ cordova plugins rm org.apache.cordova.geolocation
рдкреНрд░реЛрдЬреЗрдХреНрдЯ рдмрд┐рд▓реНрдбрд┐рдВрдЧ
рдбрд┐рдлрд╝реЙрд▓реНрдЯ рд░реВрдк рд╕реЗ, рдХреЙрд░реНрдбреЛрд╡рд╛
www
рд╡реЗрдм рдлрд╛рдЗрд▓ рдлрд╝реЛрд▓реНрдбрд░ рдореЗрдВ рдПрдХ рдкреНрд░реЛрдЬреЗрдХреНрдЯ рд╡рд╛рдпрд░рдлреНрд░реЗрдо рдмрдирд╛рддрд╛ рд╣реИ, рдЬреЛ рдкреНрд░реЛрдЬреЗрдХреНрдЯ рдХреЗ рд╣реЛрдо рдбрд╛рдпрд░реЗрдХреНрдЯрд░реА рдореЗрдВ рд╕реНрдерд┐рдд рд╣реИред рдЬрдм рдХреЙрд░реНрдбреЛрд╡рд╛ рдПрдХ рдкрд░рд┐рдпреЛрдЬрдирд╛ рдХрд╛ рдирд┐рд░реНрдорд╛рдг рдХрд░рддрд╛ рд╣реИ, рддреЛ рд╡рд╣ рдЗрди рдлрд╝рд╛рдЗрд▓реЛрдВ рдХреЛ рдкреНрд▓реЗрдЯрдлрд╝реЙрд░реНрдо-рд╡рд┐рд╢рд┐рд╖реНрдЯ рдирд┐рд░реНрджреЗрд╢рд┐рдХрд╛рдУрдВ рдореЗрдВ рдХреЙрдкреА рдХрд░рддрд╛ рд╣реИред
рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдХрд╛ рдирд┐рд░реНрдорд╛рдг рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рдЖрдкрдХреЛ рдПрдХ рдФрд░ рдХреЙрд░реНрдбреЛрд╡рд╛ рдХрдорд╛рдВрдб рдЪрд▓рд╛рдиреЗ рдХреА рдЬрд░реВрд░рдд рд╣реИ,
build
:
$ cordova build
рдкреНрд▓реЗрдЯрдлрд╝реЙрд░реНрдо рдХреЛ рдмрдирд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдХрд┐рдП рдмрд┐рдирд╛, рдпрд╣ рдЯреАрдо рд╣рдорд╛рд░реА рдкрд░рд┐рдпреЛрдЬрдирд╛ рдореЗрдВ рдЙрдкрд▓рдмреНрдз рд╕рднреА рдкреНрд▓реЗрдЯрдлрд╛рд░реНрдореЛрдВ рдХреЗ рд▓рд┐рдП рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдХрд╛ рдирд┐рд░реНрдорд╛рдг рдХрд░реЗрдЧреАред рдЖрдк рдкрд░рд┐рдпреЛрдЬрдирд╛ рдХреЗ рдирд┐рд░реНрдорд╛рдг рдХреЗ рд▓рд┐рдП рдЗрд╕рдХреЗ рджрд╛рдпрд░реЗ рдХреЛ рд╕реАрдорд┐рдд рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ, рдХреЗрд╡рд▓ рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдкреНрд▓реЗрдЯрдлрд╛рд░реНрдореЛрдВ рдХреЗ рд▓рд┐рдПред
$ cordova build ios $ cordova build android
build
рдХрдорд╛рдВрдб рдХреЛ рдирд┐рд╖реНрдкрд╛рджрд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдПрдХ рд╡рд┐рд╢реЗрд╖ рдкреНрд▓реЗрдЯрдлрд╝реЙрд░реНрдо рдХреЗ рд▓рд┐рдП рдЖрд╡рд╢реНрдпрдХ рдХреЛрдб рдХреЛ рд╕реНрдерд╛рдкрд┐рдд рдХрд░рдиреЗ рдХреА рдЧрд╛рд░рдВрдЯреА рджреА рдЬрд╛рддреА рд╣реИ, рддрд╛рдХрд┐ рдЗрд╕рдХреЗ рдмрд╛рдж рд╣рдорд╛рд░реЗ рдЖрд╡реЗрджрди рдХреЛ рд╕рдВрдХрд▓рд┐рдд рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХреЗред рдЕрдирд┐рд╡рд╛рд░реНрдп рд░реВрдк рд╕реЗ, рдЗрд╕ рдкрджреНрдзрддрд┐ рдХреЗ рд╕рд╛рде рд╣рдо рд╡реИрд╕рд╛ рд╣реА рдХрд░рддреЗ рд╣реИрдВ рдЬреИрд╕рд╛ рдХрд┐ рддреИрдпрд╛рд░реА рдХреЗ рддрд░реАрдХреЗ
cordova prepare && cordova compile
ред
рдЕрдиреБрдХрд░рдг рдФрд░ рдирд┐рд╖реНрдкрд╛рджрди
рдХреЙрд░реНрдбреЛрд╡рд╛ рдПрдХ рдбрд┐рд╡рд╛рдЗрд╕ рдкрд░ рдХрд┐рд╕реА рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдХреЗ рд▓реЙрдиреНрдЪ рдХреЛ рдЕрдиреБрдХрд░рдг рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдПрдХ рдПрдореБрд▓реЗрдЯрд░ рдЪрд▓рд╛рдиреЗ рдХреА рдХреНрд╖рдорддрд╛ рднреА рд░рдЦрддрд╛ рд╣реИред рдмреЗрд╢рдХ, рдпрд╣ рдХреЗрд╡рд▓ рддрднреА рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ рдЬрдм рдЖрд╡рд╢реНрдпрдХ рдПрдореБрд▓реЗрдЯрд░ рд╕реНрдерд╛рдкрд┐рдд рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реЛ рдФрд░ рд╡рд┐рдХрд╛рд╕ рдХреЗ рд╡рд╛рддрд╛рд╡рд░рдг рдореЗрдВ рдХреЙрдиреНрдлрд╝рд┐рдЧрд░ рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реЛред
рдорд╛рди рд▓реАрдЬрд┐рдП рдХрд┐ рдЖрд╡рд╢реНрдпрдХ рдПрдореБрд▓реЗрдЯрд░ рд╡рд┐рдХрд╛рд╕ рдХреЗ рд╡рд╛рддрд╛рд╡рд░рдг рдореЗрдВ рдХреЙрдиреНрдлрд╝рд┐рдЧрд░ рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ, рддреЛ рд╣рдо рдЗрд╕реЗ рдХреЙрд░реНрдбреЛрд╡рд╛ рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рдЪрд▓рд╛ рд╕рдХрддреЗ рд╣реИрдВ рдФрд░ рдЗрд╕рдореЗрдВ рдЕрдкрдирд╛ рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдЗрдВрд╕реНрдЯреЙрд▓ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред
$ cordova emulate ios
IOS рдХреЗ рд▓рд┐рдП, рдЖрдкрдХреЛ Xcode рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдкреНрд░реЛрдЬреЗрдХреНрдЯ рд╕реЗрдЯ рдХрд░рдирд╛ рдкрдбрд╝ рд╕рдХрддрд╛ рд╣реИ (рдЬреИрд╕рд╛ рдХрд┐ рд╣рдордиреЗ рдкрд╣рд▓реЗ рдХрд┐рдпрд╛ рдерд╛) рдпрджрд┐ рдкрд░реНрдпрд╛рд╡рд░рдг рдПрдореБрд▓реЗрдЯрд░ рдЖрдкрдХреЗ рд╡рд┐рдХрд╛рд╕ рдХреЗ рд╡рд╛рддрд╛рд╡рд░рдг рдореЗрдВ рдХреЙрдиреНрдлрд╝рд┐рдЧрд░ рдирд╣реАрдВ рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИред
рдЙрдкрд░реЛрдХреНрдд рд╕рднреА рдХреЗ рдмрдЬрд╛рдп,
run
рдХрдорд╛рдВрдб рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдХрд┐рд╕реА рд╡рд┐рд╢рд┐рд╖реНрдЯ рдбрд┐рд╡рд╛рдЗрд╕ рдкрд░ рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдХреЛ рдЪрд▓рд╛рдирд╛ рд╕рдВрднрд╡ рд╣реИред
run
рдХрдорд╛рдВрдб, рдбрд┐рд╡рд╛рдЗрд╕ рдореЗрдВ рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдХреЛ рд▓реЙрдиреНрдЪ рдХрд░рддрд╛ рд╣реИ, рдпрд╛ рдПрдореБрд▓реЗрдЯрд░ рдкрд░, рдЕрдЧрд░ рдбрд┐рд╡рд╛рдЗрд╕ рдирд╣реАрдВ рдорд┐рд▓рд╛ рдпрд╛ рдкрд╣реБрдВрдЪ рдпреЛрдЧреНрдп рдирд╣реАрдВ рд╣реИред
$ cordova run ios
рд╡рд┐рдХрд╛рд╕ рдореЗрдВ
рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдореЗрдВ рдкрд░рд┐рд╡рд░реНрддрди рдХрд░рдирд╛ рдХрд╛рдлреА рдмреЛрдЭрд┐рд▓ рдкреНрд░рдХреНрд░рд┐рдпрд╛ рд╣реЛ рд╕рдХрддреА рд╣реИ, рдЬрдмрдХрд┐ рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдХреЗ рдХрд┐рд╕реА рднреА рд╣рд┐рд╕реНрд╕реЗ рдореЗрдВ рдмрджрд▓рд╛рд╡ рдХрд░рддреЗ рд╣реБрдП рдХрд╛рд░реНрд░рд╡рд╛рдИ рдореЗрдВ рдЗрди рдкрд░рд┐рд╡рд░реНрддрдиреЛрдВ рдХреЛ рджреЗрдЦрдиреЗ рдХреЗ рд▓рд┐рдП рдЗрд╕реЗ рдлрд┐рд░ рд╕реЗ рд╢реБрд░реВ рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрддреА рд╣реИред рд╡реЗрдм рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдХреЛ рд╡рд┐рдХрд╕рд┐рдд рдХрд░рдиреЗ рдХреА рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдХреЛ рддреЗрдЬ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рд╣рдо рдЕрдкрдиреЗ рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдХреЗ рд╕реНрдерд╛рдиреАрдп рд╕рдВрд╕реНрдХрд░рдг рдХреЛ
www
рдлрд╝реЛрд▓реНрдбрд░ рд╕реЗ рдмреНрд░рд╛рдЙрдЬрд╝рд░ рдореЗрдВ рд╡рд╛рдкрд╕ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рд╕реНрдерд╛рдиреАрдп рд╕рд░реНрд╡рд░ рдХреЛ рдХреЙрдиреНрдлрд╝рд┐рдЧрд░ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП
serve
рдХрдорд╛рдВрдб рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред
$ cordova serve ios Static file server running at => http://0.0.0.0:8000/ CTRL + C to shutdown
рдЕрдм, рд╡реЗрдм рдмреНрд░рд╛рдЙрдЬрд╝рд░ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╣реБрдП, рдирд┐рдореНрди URL рдкрд░ рдЬрд╛рдПрдВ:
localhost:8000/ios/www/index.html
localhost:8000/ios/www/index.html
ред рдЖрдкрдХреЗ
www
рдлрд╝реЛрд▓реНрдбрд░ рдХреА рд╕рд╛рдордЧреНрд░реА рд╕рд░реНрд╡рд░ рджреНрд╡рд╛рд░рд╛ HTTP рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рджреА рдЬрд╛рдПрдЧреА, рдЗрд╕рд▓рд┐рдП рдЕрдм рдЖрдк рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдХрд╛ рдирд┐рд░реНрдорд╛рдг рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ рдФрд░ рдЙрд╕рдореЗрдВ рдХрд┐рдП рдЧрдП рд╕рднреА рдкрд░рд┐рд╡рд░реНрддрдиреЛрдВ рдХреЛ рдЯреНрд░реИрдХ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред
рдЖрдкрдХреЗ рджреНрд╡рд╛рд░рд╛ рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдореЗрдВ рдкрд░рд┐рд╡рд░реНрддрди рдХрд░рдиреЗ рдХреЗ рдмрд╛рдж, рдЖрдкрдХреЛ рдмрд╕ рдЗрд╕реЗ рдкреБрдирд░реНрдирд┐рд░реНрдорд╛рдг рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ:
$ cordova build ios

рдХреЛрд░реНрдбреЛрд╡рд╛ рдХреЗ рд▓рд┐рдП рдХреЛрдгреАрдп рд╕реЗрд╡рд╛
рдЬрдм рд╣рдорд╛рд░рд╛ рдХреЙрд░реНрдбреЛрд╡рд╛ рдПрдкреНрд▓рд┐рдХреЗрд╢рди рддреИрдпрд╛рд░ рд╣реЛрддрд╛ рд╣реИ, рддреЛ рдбрд┐рд╡рд╛рдЗрд╕ рдХрдиреЗрдХреНрдЯ рд╣реЛ рдЬрд╛рддрд╛ рд╣реИ рдФрд░ рдХрд╛рдо рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рд╕рдм рдХреБрдЫ рддреИрдпрд╛рд░ рд╣реЛ рдЬрд╛рддрд╛ рд╣реИ, рдХреЙрд░реНрдбреЛрд╡рд╛ рдмреНрд░рд╛рдЙрдЬрд╝рд░ рдореЗрдВ
deviceready
рдЗрд╡реЗрдВрдЯ рдХреЛ
deviceready
рдХрд░рддрд╛ рд╣реИред
deviceready
,
deviceready
рдШрдЯрдирд╛ рдХреЗ рдмрд╛рдж, рд╣рдо рдпрд╛ рддреЛ рдХреЛрдгреАрдп рдЖрд╡реЗрджрди рд╢реБрд░реВ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ рдпрд╛ рдЗрд╕рдХреЗ рд▓рд┐рдП рдЖрдкрдХреЗ рдЖрд╡реЗрджрди рдХреЗ рддрд░реНрдХ рдореЗрдВ рд╡рд╛рджрд╛ рд╡рд╕реНрддреБрдУрдВ рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред
deviceready
рдШрдЯрдирд╛ рдХреЗ рдмрд╛рдж рдЖрд╡реЗрджрди рд╢реБрд░реВ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рд╣рдореЗрдВ рдЗрд╕рдХреЗ рд▓рд┐рдП рдПрдХ рд╣реИрдВрдбрд▓рд░ рд╕реНрдерд╛рдкрд┐рдд рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ, рдЬрд╣рд╛рдВ рдореИрдиреНрдпреБрдЕрд▓ рд░реВрдк рд╕реЗ рдЕрдкрдирд╛ рдХрд╛рдо рд╢реБрд░реВ рдХрд░рдирд╛ рд╣реИ:
ngular.module('myApp', []); var onDeviceReady = function() { angular.bootstrap( document, ['myApp']); } document.addEventListener('deviceready', onDeviceReady);
рд╣рдо
deviceready
рдШрдЯрдирд╛ рдХреЗ рд▓рд┐рдП рд╕реБрдирдиреЗ рдХреЗ рд╡реИрдХрд▓реНрдкрд┐рдХ рддрд░реАрдХреЗ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛ рдкрд╕рдВрдж рдХрд░рддреЗ рд╣реИрдВ, рд╡рд╛рджреЛрдВ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╣реБрдП, рдЖрд╡реЗрджрди рд╢реБрд░реВ рдХрд░рдиреЗ рдХреЗ рдмрд╛рдж
deviceready
рдШрдЯрдирд╛
deviceready
ред
рд╣рдордиреЗ рдПрдХ рдХреЛрдгреАрдп рдореЙрдбреНрдпреВрд▓ рдмрдирд╛рдпрд╛, рдЬреЛ рдХрд┐
deviceready
рдИрд╡реЗрдВрдЯ рдХреЛ рд╕реБрдирдиреЗ рдХреЗ рд▓рд┐рдП рдЬрд┐рдореНрдореЗрджрд╛рд░ рд╣реИред рд╣рдо рдПрдХ рдРрд╕реА рд╕реЗрд╡рд╛ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░реЗрдВрдЧреЗ рдЬреЛ рдЗрд╕ рдШрдЯрдирд╛ рдХреЗ рдЙрдардиреЗ рдХреЗ рдмрд╛рдж
deviceready
рдШрдЯрдирд╛ рдХреЛ
deviceready
рдФрд░ рд╣рдорд╛рд░реЗ рд╡рд╛рджреЛрдВ рдХреЛ рд╣рд▓
deviceready
ред
angular.module('fsCordova', []) .service('CordovaService', ['$document', '$q', function($document, $q) { var d = $q.defer(), resolved = false; var self = this; this.ready = d.promise; document.addEventListener('deviceready', function() { resolved = true; d.resolve(window.cordova); });
рдЕрдм рдЖрдкрдХреЛ рдЕрдкрдиреЗ рдореЙрдбреНрдпреВрд▓ рдХреЗ рд▓рд┐рдП рдирд┐рд░реНрднрд░рддрд╛ рдХреЗ рд░реВрдк рдореЗрдВ
fsCordova
рд╕реНрдерд╛рдкрд┐рдд рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИред
angular.module('myApp', ['fsCordova'])
рдХреЙрд░реНрдбреЛрд╡рд╛ рдХрд╛рдо рдХреЗ рд▓рд┐рдП рддреИрдпрд╛рд░ рд╣реИ рдпрд╛ рдирд╣реАрдВ, рдпрд╣ рддрдп рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рд╣рдо рдХреЙрд░реНрдбреЛрдмрд╛ рд╕реЗрд╡рд╛ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ, рдЬреЛ рдЗрд╕ рдкрд░ рдирд┐рд░реНрднрд░ рдХрд░рддрд╛ рд╣реИ:
angular.module('myApp', ['fsCordova']) .controller('MyController', function($scope, CordovaService) { CordovaService.ready.then(function() {
рдХреЛрдгреАрдп рд╕рдХреНрд╖рдо рдХрд░рдирд╛
рдирдВрдЧреЗ рдХреЙрд░реНрдбреЛрд╡рд╛ рдЖрд╡реЗрджрди рдореЗрдВ, рдХреЗрд╡рд▓ рд╢реБрджреНрдз
javascript
рд▓рд┐рдП рд╕рдорд░реНрдерди рд╣реИ, рдЬреЛ
js/index.js
рдореЗрдВ рд╕реНрдерд┐рдд
javascript
рджреГрд╢реНрдп рдХреЛ рдЫреБрдкрд╛рддрд╛ рд╣реИ рдФрд░ рдкреНрд░рджрд░реНрд╢рд┐рдд рдХрд░рддрд╛ рд╣реИред
рдЗрд╕ рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдореЗрдВ рдХреЛрдгреАрдп рд╢рд╛рдорд┐рд▓ рдХрд░рдирд╛ рдмрд╣реБрдд рд╕рд░рд▓ рд╣реИред рдЬрдм рддрдХ рд╣рдо рдЖрд╡реЗрджрди рд╕рдорд╛рдкреНрдд рдирд╣реАрдВ рдХрд░рддреЗ, рд╣рдо рд╕реАрдбреАрдПрди рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХреЗ рдмрдЬрд╛рдп, рдЗрд╕рдореЗрдВ рдЖрд╡рд╢реНрдпрдХ рдШрдЯрдХреЛрдВ рдХреЛ рд╕реАрдзреЗ рд╢рд╛рдорд┐рд▓ рдХрд░реЗрдВрдЧреЗ, рдЬреЛ рдХрд┐ рдбрд┐рдЬрд╛рдЗрди рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдХреЗ рджреМрд░рд╛рди рдЕрдирд╛рд╡рд╢реНрдпрдХ рд╕рдорд╕реНрдпрд╛рдУрдВ рдХрд╛ рдХрд╛рд░рдг рдмрди рд╕рдХрддрд╛ рд╣реИред
рд╣рдо рдЕрдзрд┐рдХ рдЬрдЯрд┐рд▓ рдЗрдВрд╕реНрдЯреЙрд▓реЗрд╢рди рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдХреЗ рд▓рд┐рдП Bower рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ, рд▓реЗрдХрд┐рди рдЕрднреА рдХреЗ рд▓рд┐рдП, рд╣рдо рдкреНрд░реЛрдЬреЗрдХреНрдЯ рдореЗрдВ
angular.js
.
angular.js
рдлрд╝рд╛рдЗрд▓ рдЬреЛрдбрд╝рддреЗ рд╣реИрдВред
рд╣рдорд╛рд░реЗ рдХреЛрдгреАрдп рдЕрдиреБрдкреНрд░рдпреЛрдЧ рдХрд╛ рдирд┐рд░реНрдорд╛рдг рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рд╣рдореЗрдВ angularjs.org рд╕реЗ рдЗрд╕рдХреЗ рдШрдЯрдХреЛрдВ рдХреЛ рдбрд╛рдЙрдирд▓реЛрдб рдХрд░рдирд╛ рд╣реЛрдЧрд╛ , рдФрд░ рдЙрдиреНрд╣реЗрдВ рд╣рдорд╛рд░реЗ рдЕрдиреБрдкреНрд░рдпреЛрдЧ рдХреЗ рд▓рд┐рдП рд╕реБрд▓рдн рдлрд╝реЛрд▓реНрдбрд░ рдореЗрдВ рд╕рд╣реЗрдЬрдирд╛ рд╣реЛрдЧрд╛ред рд╣рдо рд╕рд▓рд╛рд╣ рджреЗрддреЗ рд╣реИрдВ www/js/vendor/angular.js
редрдПрдХ рдмрд╛рд░ рдЬрдм рд╣рдордиреЗ рдРрд╕рд╛ рдХрд░ рд▓рд┐рдпрд╛ рд╣реИ, рддреЛ рд╣рдо рдЕрдкрдиреЗ рдХреЛрдгреАрдп рдЕрдиреБрдкреНрд░рдпреЛрдЧ рдХреЛ рд╡рд┐рдХрд╕рд┐рдд рдХрд░рдирд╛ рд╢реБрд░реВ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред рд╣рдореЗрдВ рдЕрдкрдиреЗ рдореЗрдВ рдЬрд╛рд╡рд╛рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдлрд╝рд╛рдЗрд▓ рд╢рд╛рдорд┐рд▓ рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ www/index.html
ред <script type="text/javascript" src="js/vendor/angular.js"></script>
рдЕрдм рдЖрдк рд╕рднреА рд╕рд╛рдордЧреНрд░реА js/index.js
рдХреЛ рд╣рдорд╛рд░реЗ рдХреЛрдгреАрдп рдЕрдиреБрдкреНрд░рдпреЛрдЧ рд╕реЗ рдмрджрд▓ рд╕рдХрддреЗ рд╣реИрдВ рдФрд░ рд╕рд╛рдорд╛рдиреНрдп рддрд░реАрдХреЗ рд╕реЗ рдХрд╛рдо рдХрд░ рд╕рдХрддреЗ рд╣реИрдВредрд╡рд┐рдХрд╛рд╕ рдХреА рдкреНрд░рдХреНрд░рд┐рдпрд╛
рдЕрдкрдирд╛ рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдмрдирд╛рдиреЗ рдХреЗ рдмрд╛рдж, рдЖрдк рдирд┐рдореНрди рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ:- рдЕрдкрдирд╛ рд╕реНрдерд╛рдиреАрдп рд╕рд░реНрд╡рд░ рдЪрд▓рд╛рдПрдВ (
cordova serve [platform]
) - рдЕрдкрдирд╛ рдЖрд╡реЗрджрди рд╕рдВрдкрд╛рджрд┐рдд рдХрд░реЗрдВ
- рдЕрдкрдиреЗ рдЖрд╡реЗрджрди рдХрд╛ рдкреБрдирд░реНрдирд┐рд░реНрдорд╛рдг (
cordova build [platform]
)
рдпрд╣ рдЪрдХреНрд░, рд╣рд╛рд▓рд╛рдВрдХрд┐ рдХреБрдЫ рдмреЛрдЭрд┐рд▓ рд╣реИ, рдпрд╣ рдмрддрд╛рддрд╛ рд╣реИ рдХрд┐ рд╣рдореЗрдВ рдЕрдкрдиреЗ рдЖрд╡реЗрджрди рдХреЛ рд╕рдВрдкрд╛рджрд┐рдд рдХрд░рдиреЗ рдХреА рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдореЗрдВ рдХреНрдпрд╛ рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИредрдпрджрд┐ рд╣рдорд╛рд░рд╛ рдЖрд╡реЗрджрди рдХреЙрд░реНрдбреЛрд╡рд╛ рдкрд░ рдирд┐рд░реНрднрд░ рдирд╣реАрдВ рдХрд░рддрд╛ рд╣реИ, рддреЛ рдЗрд╕реЗ рд╕рд┐рдореНрдпреБрд▓реЗрдЯрд░ рдХреЗ рдмрд╛рд╣рд░ рд╕реАрдзреЗ рдмреНрд░рд╛рдЙрдЬрд╝рд░ рдореЗрдВ рд╕рдВрдкрд╛рджрд┐рдд рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ (рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдХреНрд░реЛрдо рдореЗрдВ)ред рдЗрд╕ рдорд╛рдорд▓реЗ рдореЗрдВ, рд╣рдо рдЗрд╕рдХреЗ рдкреБрдирд░реНрдирд┐рд░реНрдорд╛рдг рдФрд░ рдкреБрди: рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХреЗ рдмрдЬрд╛рдп, рд╣рдорд╛рд░реЗ рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдмрдирд╛рдиреЗ рдкрд░ рдХрд╛рдо рдХрд░ рд╕рдХрддреЗ рд╣реИрдВредрд╣рдордиреЗ рдЕрдкрдиреА рдЖрдЧрд╛рдореА рдПрдирдЬреА-рдмреБрдХ: рдж рдХрдореНрдкреНрд▓реАрдЯ рдмреБрдХ рдСрди рдПрдВрдЧреБрд▓рд░рдЬреЗрдПрд╕ рдореЗрдВ рдореЛрдмрд╛рдЗрд▓ рд╡рд┐рдХрд╛рд╕ рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдкрд░ рдЕрдзрд┐рдХ рд╡реНрдпрд╛рдкрдХ рдЬрд╛рдирдХрд╛рд░реА рд╢рд╛рдорд┐рд▓ рдХреА рд╣реИ редрдпрд╣ рд╕реНрдкрд╖реНрдЯ рд╣реИ рдХрд┐ рдореЛрдмрд╛рдЗрд▓ рдЙрдкрдХрд░рдгреЛрдВ рдХреЗ рдкрд╛рд╕ рдЬрд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдХреЛрдИ рдЬрдЧрд╣ рдирд╣реАрдВ рд╣реИ, рдФрд░ рдХреЛрдгреАрдп рдПрдХ рдмрд╣реБрдд рд╢рдХреНрддрд┐рд╢рд╛рд▓реА рдврд╛рдВрдЪрд╛ рд╣реИ рдЬреЛ рдкрд╣рд▓реЗ рд╕реЗ рд╣реА рд╣рдорд╛рд░реЗ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛рдУрдВ рдХреЗ рд▓рд┐рдП рдореЛрдмрд╛рдЗрд▓ рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдмрдирд╛рдиреЗ рдореЗрдВ рд╣рдореЗрдВ рдЕрд╡рд┐рд╢реНрд╡рд╕рдиреАрдп рд░реВрдк рд╕реЗ рджреВрд░ рд▓реЗ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИредрдЬреИрд╕рд╛ рдХрд┐ рд╣рдордиреЗ рдкрд╣рд▓реЗ рд╣реА рджреЗрдЦрд╛ рд╣реИ, рдЖрдк рдореЛрдмрд╛рдЗрд▓ рдЗрдВрдЯрд░рдлреЗрд╕ рдХрд╛ рд╕рдорд░реНрдерди рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ, рдФрд░ рдЖрдк AngularJS рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдореВрд▓ рдПрдкреНрд▓рд┐рдХреЗрд╢рди рднреА рдмрдирд╛ рд╕рдХрддреЗ рд╣реИрдВред