рдХреНрд░реЙрд╕-рдкреНрд▓реЗрдЯрдлреЙрд░реНрдо рдореЛрдмрд╛рдЗрд▓ рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдХреЛ рдЬрд▓реНрджреА рд╕реЗ рдХреИрд╕реЗ рддреИрдпрд╛рд░ рдХрд░реЗрдВред рднрд╛рдЧ 1: Adobe Phonegap + AngularJS

рд▓рдбрд╝рдХреА рдХреЗ рд╕рд╛рде рдорд┐рд▓рдиреЗ рд╡рд╛рд▓реЗ рд╣рд░ рд╡реНрдпрдХреНрддрд┐ рдХреЛ рдкрддрд╛ рд╣реИ рдХрд┐ рдЗрди рдЦреВрдмрд╕реВрд░рдд рдЬреАрд╡реЛрдВ рдХреЛ рддрд╛рд░реАрдл рд╕реЗ рдкреНрдпрд╛рд░ рд╣реИред рдФрд░ рд╣рдо, рдЧреНрд░рд╣ рдкреГрдереНрд╡реА рдХреА рдкреБрд░реБрд╖ рдЖрдмрд╛рджреА, рд╣рдореЗрд╢рд╛ рд╣рдорд╛рд░реА рднрд╛рд╡рдирд╛рдУрдВ рдХреЛ рд╡реНрдпрдХреНрдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдкрд░реНрдпрд╛рдкреНрдд рд╢рдмреНрдж рдирд╣реАрдВ рд╣реИрдВ рдпрд╛ рдмрд╕ рдХреБрдЫ рд╕реБрдВрджрд░ рдХрд╣рддреЗ рд╣реИрдВред рдЗрд╕ рд╕рдорд╕реНрдпрд╛ рдХреЛ рд╕рдордЭрддреЗ рд╣реБрдП рд╣рдореЗрдВ рддрд╛рд░реАрдл рдХрд╛ рдПрдХ рдФрд░ рдЬрдирд░реЗрдЯрд░ рдмрдирд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдкреНрд░реЗрд░рд┐рдд рдХрд┐рдпрд╛ ... рдкреВрд░реНрдг рд╕реНрдХреНрд░реАрди рдореЗрдВ рдПрдХ рдмрдЯрди рдФрд░ рдкрд╛рда рдХреЗ рд╕рд╛рде рд╕рдмрд╕реЗ рд╕рд░рд▓, рдЖрджрд░реНрд╢ рд░реВрдк рд╕реЗред
рдкрд╣рд▓реЗ рднрд╛рдЧ рдореЗрдВ рдореИрдВ рдЙрди рд▓рдХреНрд╖реНрдпреЛрдВ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдмрд╛рдд рдХрд░реВрдБрдЧрд╛ рдЬреЛ рд╣рдордиреЗ рдирд┐рд░реНрдзрд╛рд░рд┐рдд рдХрд┐рдП рд╣реИрдВ (рдЖрд╡реЗрджрди рдХреА рдЕрд╡рдзрд╛рд░рдгрд╛) рдФрд░ рдЗрди рд▓рдХреНрд╖реНрдпреЛрдВ рдХреЛ рдкреНрд░рд╛рдкреНрдд рдХрд░рдиреЗ рдХреЗ рд╕рд╛рдзрди рдЬреЛ рд╣рдордиреЗ рдЪреБрдиреЗ рд╣реИрдВ (рдлреЛрдирдЧреИрдк + рдЖрдпреЛрдирд┐рдХ + рд░реЗрд╕реНрдЯреИрдВрдЧреБрд▓рд░ + рдлреЛрдирдЧреИрдк рдкреНрд▓рдЧрдЗрдиреНрд╕ рдореИрдЬрд┐рдХ)ред рдпрд╣ рдкреЛрд╕реНрдЯ рдореЛрдмрд╛рдЗрд▓ рд╕реЙрдлреНрдЯрд╡реЗрдпрд░ рдХреЗ рд╢реБрд░реБрдЖрддреА рдФрд░ рдЕрдиреБрднрд╡реА рдбреЗрд╡рд▓рдкрд░реНрд╕ рджреЛрдиреЛрдВ рдХреЗ рд▓рд┐рдП рдЙрдкрдпреЛрдЧреА рд╣реЛрдЧрд╛ред

рдиреЛрдЯ: рдЖрд╡реЗрджрди рдХреЗ рдЕрдВрддрд┐рдо рд╕рдВрд╕реНрдХрд░рдг рдФрд░ GitHub рдХреЗ рд▓рд┐рдВрдХ рдкреЛрд╕реНрдЯ рдХреЗ рддрд╣рдЦрд╛рдиреЗ рдореЗрдВ рдкрд╛рдП рдЬрд╛ рд╕рдХрддреЗ рд╣реИрдВред

рдЯреНрд░реЗрдирд┐рдВрдЧ


рдЪреВрдВрдХрд┐ рд╕рдордп рдХрдо рдерд╛ (рдПрдХ рд╕рдкреНрддрд╛рд╣), рдФрд░ рдпрд╣ рдмрд╣реБрдд рдХреБрдЫ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЖрд╡рд╢реНрдпрдХ рдерд╛ (рдФрд░ рдЖрдк рдЕрднреА рд╕реЗ AppStore рддрдХ рдирд╣реАрдВ рдкрд╣реБрдВрдЪ рдкрд╛рдП), рд▓рдХреНрд╖реНрдп рд╢реБрд░реВ рд╕реЗ рд╣реА рд╕реНрдкрд╖реНрдЯ рдерд╛: рд╣рдо рдПрдХ рдХреНрд░реЙрд╕-рдкреНрд▓реЗрдЯрдлрд╝реЙрд░реНрдо рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдмрдирд╛рддреЗ рд╣реИрдВ рддрд╛рдХрд┐ рдЗрд╕реЗ рдПрдХ рд╣реА рдмрд╛рд░ рдореЗрдВ рдФрд░ рд╣рд░ рдЪреАрдЬ рдХреЗ рд▓рд┐рдП рдПрдХ рдЬрдЧрд╣ рдкрд░ рдЗрдХрдЯреНрдард╛ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХреЗред рдЪреБрдиреЗ рдЧрдП рдлреЛрдирдЧреИрдк ред рдФрд░, рдЪреВрдВрдХрд┐ рдЕрдм HTML + JS + CSS рдореЗрдВ рд▓рд┐рдЦрдирд╛ рд╕рдВрднрд╡ рд╣реИ, рдЖрдк рдлреНрд░реЗрдорд╡рд░реНрдХ рдХреЛ рд╕реЗрд╡рд╛ рдореЗрдВ рд▓реЗ рд╕рдХрддреЗ рд╣реИрдВред AngularJS рдХрд░реЗрдВрдЧреЗред рдЬрдирд░реЗрдЯрд░ рд╕реНрд╡рдпрдВ рдПрдХ рдЕрд▓рдЧ рд╕рд░реНрд╡рд░ рдкрд░ рд╕реНрдкрд┐рди рдХрд░реЗрдЧрд╛ (рд╣рдо рдЗрд╕ рдкреЛрд╕реНрдЯ рдореЗрдВ рдЗрд╕ рдкрд░ рд╡рд┐рдЪрд╛рд░ рдХрд░реЗрдВрдЧреЗ) - рд╣рдо рдЗрд╕рдХреЗ рд╕рд╛рде REST рдкрд░ рд╕рдВрд╡рд╛рдж рдХрд░реЗрдВрдЧреЗред рдЗрди рдЙрджреНрджреЗрд╢реНрдпреЛрдВ рдХреЗ рд▓рд┐рдП рдПрдХ рдЙрддреНрдХреГрд╖реНрдЯ рдкреБрд╕реНрддрдХрд╛рд▓рдп рд░реЗрд╕реНрдЯреИрдВрдЧреБрд▓рд░ рд╣реИ ред

Phonegap + AngularJS рдкрд░ рддреНрд╡рд░рд┐рдд рд╢реБрд░реБрдЖрдд

( рд╕реНрд░реЛрдд )
Habr├й рдкрд░ AngularJS рдкрд░ рдореЛрдмрд╛рдЗрд▓ рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдХреЗ рд╡рд┐рдХрд╛рд╕ рдкрд░ рдХреБрдЫ рд▓реЗрдЦ рд╣реИрдВред рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдпрд╣рд╛рдБ ред рд▓реЗрдХрд┐рди рдЖрдо рддреМрд░ рдкрд░, рдПрдХ рд╕рдкрдиреЗ рдХреЗ рд░реВрдк рдореЗрдВ, рдмреАрдЪ рдореЗрдВ рдХрд╛рд░реНрд░рд╡рд╛рдИ рд╢реБрд░реВ рд╣реЛрддреА рд╣реИ: "рдЖрдкрдХреЗ рдкрд╛рд╕ рдкрд╣рд▓реЗ рд╕реЗ рдЬреБрдбрд╝рд╛ рд╣реБрдЖ рд╣реИ рдЬреЛрдорди рдХреЗ рд╕рд╛рде рдпреЛрдорди рджреНрд╡рд╛рд░рд╛ NodeJS рдкрд░ рдПрдХ рдкреНрд░реЛрдЯреЛрдЯрд╛рдЗрдк рд╣реИ - рдореИрдВ рдЖрдкрдХреЛ рдмрддрд╛рддрд╛ рд╣реВрдВ рдХрд┐ рд╕реНрдкрд░реНрд╢ рдФрд░ рдЗрд╢рд╛рд░реЛрдВ рдХреЗ рд▓рд┐рдП рд╕рдорд░реНрдерди рдХреИрд╕реЗ рдЬреЛрдбрд╝рд╛ рдЬрд╛рдП", рдЖрджрд┐ рд╣рдо рдЗрд╕ рдкреЛрд╕реНрдЯ рдореЗрдВ рд╢реБрд░реВ рдХрд░рдиреЗ рдХреА рдХреЛрд╢рд┐рд╢ рдХрд░реЗрдВрдЧреЗред рдкрд╣рд▓рд╛: рдЖрдкрдХреЗ рдкрд╛рд╕ рдПрдХ рдСрдкрд░реЗрдЯрд┐рдВрдЧ рд╕рд┐рд╕реНрдЯрдо (рд╣рдорд╛рд░реЗ рдорд╛рдорд▓реЗ рдореЗрдВ, рд╡рд┐рдВрдбреЛрдЬрд╝ 8) рдФрд░ JDK , Git , NodeJs , Python рдФрд░ IDE (рд╣рдорд╛рд░реЗ рдорд╛рдорд▓реЗ рдореЗрдВ, IntelliJ IDEA 13 ) рдХреЗ рд╕рд╛рде рдПрдХ рдХрдВрдкреНрдпреВрдЯрд░ рд╣реИред рдпрджрд┐ рдЗрд╕рдореЗрдВ рд╕реЗ рдХреЛрдИ рднреА рдирд╣реАрдВ рд╣реИ, рддреЛ рд▓рд┐рдВрдХ рдкрд░ рд╕рднреА рдЬрд╛рдирдХрд╛рд░реА рдЦрд░реАрдж рдпрд╛ рд╕реНрдерд╛рдкрд┐рдд рдХрд░реЗрдВред

рдЖрд░рдВрдн рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рд╕рд┐рд╕реНрдЯрдо рдореЗрдВ Phonegap CLI рд╕реНрдерд╛рдкрд┐рдд рдХрд░реЗрдВ

NodeJS рдХреЗ рд╕рд╛рде, рдХрдорд╛рдВрдб рд▓рд╛рдЗрди рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рд╕рдм рдХреБрдЫ рдмрд╣реБрдд рдЬрд▓реНрджреА рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ:
npm install -g phonegap 

рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдкреВрд░реА рд╣реЛрдиреЗ рдХреЗ рдмрд╛рдж, рдЖрдкрдХрд╛ рд╕рд┐рд╕реНрдЯрдо рдЧреНрд▓реЛрдмрд▓ рд▓рд┐рдВрдХрд┐рдВрдЧ (рдЗрдВрд╕реНрдЯреЙрд▓реЗрд╢рди рдХрдорд╛рдВрдб рдореЗрдВ -g рд╡рд┐рд╢реЗрд╖рддрд╛) рдХреЗ рдХрд╛рд░рдг рдХрд╣реАрдВ рд╕реЗ рднреА рдлреЛрдирдЧреИрдк рд╕реАрдПрд▓рдЖрдИ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд╕рдХреЗрдЧрд╛ред рдЕрдм рдкреНрд░реЛрдЬреЗрдХреНрдЯ рдХреЗ рд▓рд┐рдП рдПрдХ рдбрд╛рдпрд░реЗрдХреНрдЯрд░реА рдмрдирд╛рдПрдВ рдФрд░ рдЙрд╕рдореЗрдВ рдЬрд╛рдПрдВ
 cd D:\workspace\march8\modules\ 

рдЕрдм Phonegap CLI рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдПрдХ рдореЛрдмрд╛рдЗрд▓ рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдкреНрд░реЛрдЬреЗрдХреНрдЯ рдмрдирд╛рдПрдВ:
 phonegap create client com.somecompany.compliments Compliments 

рдЬрд╣рд╛рдВ client com.somecompany.compliments рдкрд░ рдореЛрдмрд╛рдЗрд▓ рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдХреА рддреИрдирд╛рддреА рдирд┐рд░реНрджреЗрд╢рд┐рдХрд╛ рдХрд╛ рдирд╛рдо рд╣реИ, com.somecompany.compliments рдкреИрдХреЗрдЬ рд╣реИ рдЬрд┐рд╕рдореЗрдВ рдореБрдЦреНрдп Activity рд╕реНрдерд┐рдд рд╣реЛрдЧреА, рдФрд░ Compliments рдЖрд╡реЗрджрди рдХрд╛ рдирд╛рдо рд╣реИред
рд╣реБрд░реНрд░реЗ! рдЕрдм рд╣рдорд╛рд░реЗ рдкрд╛рд╕ рдлреЛрдирдЧреИрдк рдкрд░ рдПрдХ рдкрд░рд┐рдпреЛрдЬрдирд╛ рд╣реИред Android рдкрд░ рдЗрд╕рдХрд╛ рдирд┐рд░реНрдорд╛рдг рдФрд░ рдкрд░реАрдХреНрд╖рдг рдХрд░реЗрдВред рдПрдХ рдкрд░реАрдХреНрд╖рдг рдЙрдкрдХрд░рдг рдХрдиреЗрдХреНрдЯ рдХрд░реЗрдВ (рд╣рдорд╛рд░реЗ рдорд╛рдорд▓реЗ рдореЗрдВ, рдпрд╣ рд╕реИрдорд╕рдВрдЧ рдЧреИрд▓реЗрдХреНрд╕реА рдПрд╕ III рдФрд░ рд╕реИрдорд╕рдВрдЧ рдЧреИрд▓реЗрдХреНрд╕реА рдЯреИрдм 10.1 рд╣реИ) рдпрд╛ рдПрдореБрд▓реЗрдЯрд░ рдХреЛ рдХреЙрдиреНрдлрд╝рд┐рдЧрд░ рдХрд░реЗрдВ рдФрд░ рдХрдорд╛рдВрдб рд▓рд╛рдЗрди рдкрд░ рдирд┐рдореНрди рдХреЛрдб рдЪрд▓рд╛рдПрдВ:
 cd client phonegap run android 

рдпрд╣ рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдПрдВрдбреНрд░реЙрдЗрдб рдкреНрд░реЛрдЬреЗрдХреНрдЯ рдХреЛ рдкреНрд▓реЗрдЯрдлреЙрд░реНрдо рдлрд╝реЛрд▓реНрдбрд░ рдореЗрдВ рдЬреЛрдбрд╝реЗрдЧреА, рдЗрд╕реЗ рд╕рдВрдХрд▓рд┐рдд рдХрд░реЗрдЧреА рдФрд░ рдЗрд╕реЗ рдбрд┐рд╡рд╛рдЗрд╕ рдпрд╛ рдПрдореБрд▓реЗрдЯрд░ рдкрд░ рд╕реНрдерд╛рдкрд┐рдд рдХрд░реЗрдЧреАред
рдбрд┐рд╡рд╛рдЗрд╕ рд╕реНрдХреНрд░реАрдирд╢реЙрдЯ


рдЕрдм рдЖрдкрдХреЛ рдЕрдирд╛рд╡рд╢реНрдпрдХ рдлрд╝рд╛рдЗрд▓реЛрдВ рд╕реЗ рдкреНрд░реЛрдЬреЗрдХреНрдЯ рдХреЛ рд╕рд╛рдлрд╝ рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ:
 del www\spec.html rmdir /s www\spec del www\img\logo.png del www\css\index.css cd www rename index.html index-old.html 

AngularJS рдХреЛ рдкреНрд░реЛрдЬреЗрдХреНрдЯ рд╕реЗ рдХрдиреЗрдХреНрдЯ рдХрд░реЗрдВ

рдЗрд╕ рд╕рдорд╕реНрдпрд╛ рдХрд╛ рд╕рдмрд╕реЗ рд╕рд░рд▓ рд╕рдорд╛рдзрд╛рди (рдЬреИрд╕рд╛ рдХрд┐ рдКрдкрд░ рд╕реНрд░реЛрдд рдореЗрдВ рд╡рд░реНрдгрд┐рдд рд╣реИ) рдХреЛрдгреАрдп рдмреАрдЬ рдкрд░рд┐рдпреЛрдЬрдирд╛ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛ рд╣реИ - рдЗрд╕реЗ modules рдЕрдкрд▓реЛрдб рдХрд░реЗрдВ:
 cd ../../ git clone https://github.com/angular/angular-seed.git 

рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдирд┐рд╖реНрдкрд╛рджрд┐рдд рдХрд░рдиреЗ рдХреЗ рдмрд╛рдж, рдЖрдк рдирдИ рдХреЛрдгреАрдп-рдмреАрдЬ рдирд┐рд░реНрджреЗрд╢рд┐рдХрд╛ рджреЗрдЦреЗрдВрдЧреЗред рд╣рдо рдЙрди рдлрд╝рд╛рдЗрд▓реЛрдВ рдХреЛ рдирд┐рдХрд╛рд▓реЗрдВрдЧреЗ рдЬрд┐рдирдХреА рд╣рдореЗрдВ рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ:
 copy angular-seed\app\js\* client\www\js\ copy angular-seed\app\css\* client\www\css\ xcopy angular-seed\app\lib client\www\lib\ /e xcopy angular-seed\app\partials client\www\partials\ /e copy angular-seed\app\index.html client\www\index.html 

index-old.html , index-old.html index.html рдЖрд╡реЗрд╖рдг рдХреЗ index.html рдирдП index.html index-old.html рдХреЛрдб рдХреЛ index-old.html (рдЕрднреА рдХреЗ рд▓рд┐рдП, рдиреЛрдЯрдкреИрдб рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░реЗрдВ):
рдбрд╛рдЙрдирд▓реЛрдб рд╕реНрд░реЛрдд рдкреИрдХреЗрдЬ index.html
 <!doctype html> <html lang="en" ng-app="myApp"> <head> <meta charset="utf-8"> <title>My AngularJS App</title> <link rel="stylesheet" href="css/app.css"/> </head> <body> <ul class="menu"> <li><a href="#/view1">view1</a></li> <li><a href="#/view2">view2</a></li> </ul> <div ng-view></div> <div>Angular seed app: v<span app-version></span></div> <!-- In production use: <script src="//ajax.googleapis.com/ajax/libs/angularjs/xxx/angular.min.js"></script> --> <script src="lib/angular/angular.js"></script> <script src="lib/angular/angular-route.js"></script> <script src="js/app.js"></script> <script src="js/services.js"></script> <script src="js/controllers.js"></script> <script src="js/filters.js"></script> <script src="js/directives.js"></script> </body> </html> 


рдбрд╛рдЙрдирд▓реЛрдб рд╕реЛрд░реНрд╕ рдкреИрдХреЗрдЬ рдЗрдВрдбреЗрдХреНрд╕-рдкреБрд░рд╛рдирд╛ред Html
 <!DOCTYPE html> <!-- Licensed to the Apache Software Foundation (ASF) under one or more contributor license agreements. See the NOTICE file distributed with this work for additional information regarding copyright ownership. The ASF licenses this file to you under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at http://www.apache.org/licenses/LICENSE-2.0 Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License. --> <html> <head> <meta charset="utf-8" /> <meta name="format-detection" content="telephone=no" /> <!-- WARNING: for iOS 7, remove the width=device-width and height=device-height attributes. See https://issues.apache.org/jira/browse/CB-4323 --> <meta name="viewport" content="user-scalable=no, initial-scale=1, maximum-scale=1, minimum-scale=1, width=device-width, height=device-height, target-densitydpi=device-dpi" /> <link rel="stylesheet" type="text/css" href="css/index.css" /> <title>Hello World</title> </head> <body> <div class="app"> <h1>PhoneGap</h1> <div id="deviceready" class="blink"> <p class="event listening">Connecting to Device</p> <p class="event received">Device is Ready</p> </div> </div> <script type="text/javascript" src="phonegap.js"></script> <script type="text/javascript" src="js/index.js"></script> <script type="text/javascript"> app.initialize(); </script> </body> </html> 


  1. viewport рд╕реЗрдЯрд┐рдВрдЧреНрд╕ рдХреЛ рдмрд╛рд╣рд░ рдЦреАрдВрдЪреЛ (рд▓рд╛рдЗрдиреЗрдВ 23-25):
     <meta name="format-detection" content="telephone=no" /> <!-- WARNING: for iOS 7, remove the width=device-width and height=device-height attributes. See https://issues.apache.org/jira/browse/CB-4323 --> <meta name="viewport" content="user-scalable=no, initial-scale=1, maximum-scale=1, minimum-scale=1, width=device-width, height=device-height, target-densitydpi=device-dpi" /> 

  2. рд╣рдо рдлреЛрдирдЧреИрдк рдХреЛ рдЬреЛрдбрд╝рдиреЗ рдФрд░ рдЖрд░рдВрдн рдХрд░рдиреЗ рд╡рд╛рд▓реА рд▓рд╛рдЗрдиреЛрдВ рдХреЛ рднреА рд╕реНрдерд╛рдирд╛рдВрддрд░рд┐рдд рдХрд░рддреЗ рд╣реИрдВ:
    • AngularJS рдХреЛ рдЬреЛрдбрд╝рдиреЗ рд╕реЗ рдкрд╣рд▓реЗ рд▓рд╛рдЗрдиреЛрдВ рдХреЛ 37-38 рд▓рдкреЗрдЯрдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрддреА рд╣реИ
    • рд╕рдорд╛рдкрди рдЯреИрдЧ рд╕реЗ рдкрд╣рд▓реЗ рд▓рд╛рдЗрдиреЗрдВ 39-41 рдбрд╛рд▓реА рдЬрд╛рдиреА рдЪрд╛рд╣рд┐рдП



рд╕рдВрд╢реЛрдзрд┐рдд index.html рдлрд╝рд╛рдЗрд▓
 <!doctype html> <html lang="en" ng-app="myApp"> <head> <meta charset="utf-8"> <meta name="format-detection" content="telephone=no" /> <!-- WARNING: for iOS 7, remove the width=device-width and height=device-height attributes. See https://issues.apache.org/jira/browse/CB-4323 --> <meta name="viewport" content="user-scalable=no, initial-scale=1, maximum-scale=1, minimum-scale=1, width=device-width, height=device-height, target-densitydpi=device-dpi" /> <title>My AngularJS App</title> <link rel="stylesheet" href="css/app.css"/> </head> <body> <ul class="menu"> <li><a href="#/view1">view1</a></li> <li><a href="#/view2">view2</a></li> </ul> <div ng-view></div> <div>Angular seed app: v<span app-version></span></div> <script type="text/javascript" src="phonegap.js"></script> <script type="text/javascript" src="js/index.js"></script> <!-- In production use: <script src="//ajax.googleapis.com/ajax/libs/angularjs/xxx/angular.min.js"></script> --> <script src="lib/angular/angular.js"></script> <script src="lib/angular/angular-route.js"></script> <script src="js/app.js"></script> <script src="js/services.js"></script> <script src="js/controllers.js"></script> <script src="js/filters.js"></script> <script src="js/directives.js"></script> <script type="text/javascript"> app.initialize(); </script> </body> </html> 


рдЕрдм рд╣рдореЗрдВ index-old.html рдлрд╝рд╛рдЗрд▓ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдирд╣реАрдВ рд╣реИ - рд╣рдо рдЗрд╕реЗ рд╣рдЯрд╛ рджреЗрддреЗ рд╣реИрдВ:
 del client\www\index-old.html 

рдЕрдВрдд рдореЗрдВ, рд╣рдо index.js рдкрд░рд┐рд╡рд░реНрддрди index.js , рдЬреЛ рдХрд┐ рдлрд╝реЛрдирдЧреИрдк рдХреЛ рдкреНрд░рд╛рд░рдВрдн рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЬрд╝рд┐рдореНрдореЗрджрд╛рд░ рд╣реИред
рдбрд╛рдЙрдирд▓реЛрдб рд╕реНрд░реЛрдд рдкреИрдХреЗрдЬ index.js
 /* * Licensed to the Apache Software Foundation (ASF) under one * or more contributor license agreements. See the NOTICE file * distributed with this work for additional information * regarding copyright ownership. The ASF licenses this file * to you under the Apache License, Version 2.0 (the * "License"); you may not use this file except in compliance * with the License. You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, * software distributed under the License is distributed on an * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY * KIND, either express or implied. See the License for the * specific language governing permissions and limitations * under the License. */ var app = { // Application Constructor initialize: function() { this.bindEvents(); }, // Bind Event Listeners // // Bind any events that are required on startup. Common events are: // 'load', 'deviceready', 'offline', and 'online'. bindEvents: function() { document.addEventListener('deviceready', this.onDeviceReady, false); }, // deviceready Event Handler // // The scope of 'this' is the event. In order to call the 'receivedEvent' // function, we must explicity call 'app.receivedEvent(...);' onDeviceReady: function() { app.receivedEvent('deviceready'); }, // Update DOM on a Received Event receivedEvent: function(id) { var parentElement = document.getElementById(id); var listeningElement = parentElement.querySelector('.listening'); var receivedElement = parentElement.querySelector('.received'); listeningElement.setAttribute('style', 'display:none;'); receivedElement.setAttribute('style', 'display:block;'); console.log('Received Event: ' + id); } }; 


рдЖрдкрдХреЛ рдЗрд╕ рддрд░рд╣ рджрд┐рдЦрдиреЗ рдХреЗ рд▓рд┐рдП receivedEvent рдлрд╝рдВрдХреНрд╢рди рдлрд╝рдВрдХреНрд╢рди (рдкрдВрдХреНрддрд┐ 39 рдмрд╛рдж) рдХреЛ рд╕рдВрд╢реЛрдзрд┐рдд рдХрд░рдирд╛ рд╣реЛрдЧрд╛:
 receivedEvent: function(id) { console.log('Received Event: ' + id); angular.bootstrap(document, ["myApp"]); } 

рд╕рдВрд╢реЛрдзрд┐рдд рд╕реВрдЪрдХрд╛рдВрдХ.рдЬреЗрдПрд╕
 /* * Licensed to the Apache Software Foundation (ASF) under one * or more contributor license agreements. See the NOTICE file * distributed with this work for additional information * regarding copyright ownership. The ASF licenses this file * to you under the Apache License, Version 2.0 (the * "License"); you may not use this file except in compliance * with the License. You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, * software distributed under the License is distributed on an * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY * KIND, either express or implied. See the License for the * specific language governing permissions and limitations * under the License. */ var app = { // Application Constructor initialize: function() { this.bindEvents(); }, // Bind Event Listeners // // Bind any events that are required on startup. Common events are: // 'load', 'deviceready', 'offline', and 'online'. bindEvents: function() { document.addEventListener('deviceready', this.onDeviceReady, false); }, // deviceready Event Handler // // The scope of 'this' is the event. In order to call the 'receivedEvent' // function, we must explicity call 'app.receivedEvent(...);' onDeviceReady: function() { app.receivedEvent('deviceready'); }, // Update DOM on a Received Event receivedEvent: function(id) { console.log('Received Event: ' + id); angular.bootstrap(document, ["myApp"]); } }; 


рдпрд╣ рдЬрд╛рдирдХрд░ рдЕрдЪреНрдЫрд╛ рд▓рдЧрд╛ : рдЪреВрдБрдХрд┐ рдлреЛрдирдЧреИрдк рдЗрдирд┐рд╢рд┐рдпрд▓рд╛рдЗрдЬрд╝реЗрд╢рди рдЗрд╡реЗрдВрдЯ рдкрд░ рдкреНрд░реЛрдЬреЗрдХреНрдЯ рдПрдХ рдХреЙрд▓ рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рдПрдВрдЧреБрд▓рд░рдЬреЗрдПрд╕ рдХреЛ рдЗрдирд┐рд╢рд┐рдпрд▓рд╛рдЗрдЬрд╝ рдХрд░рддрд╛ рд╣реИ
 angular.bootstrap(document, ["myApp"]); 

, рддрдм index.html рдореЗрдВ рдЯреИрдЧ ng-app , AngularJS .

! Android . :
cd client phonegap run android
, :


view , . , - AngularJS .

. , , Ionic Framework .

!


Play Market:
AppStore: - !
GitHub:
ng-app , AngularJS .

! Android . :
cd client phonegap run android
, :


view , . , - AngularJS .

. , , Ionic Framework .

!


Play Market:
AppStore: - !
GitHub:
      ng-app ,      AngularJS  . 

! Android . :
cd client phonegap run android
, :


view , . , - AngularJS .

. , , Ionic Framework .

!


Play Market:
AppStore: - !
GitHub:
ng-app , AngularJS .

! Android . :
cd client phonegap run android
, :


view , . , - AngularJS .

. , , Ionic Framework .

!


Play Market:
AppStore: - !
GitHub:
ng-app , AngularJS .

! Android . :
cd client phonegap run android
, :


view , . , - AngularJS .

. , , Ionic Framework .

!


Play Market:
AppStore: - !
GitHub:
ng-app , AngularJS .

! Android . :
cd client phonegap run android
, :


view , . , - AngularJS .

. , , Ionic Framework .

!


Play Market:
AppStore: - !
GitHub:
ng-app , AngularJS .

! Android . :
cd client phonegap run android
, :


view , . , - AngularJS .

. , , Ionic Framework .

!


Play Market:
AppStore: - !
GitHub:

ng-app , AngularJS .

! Android . :
cd client phonegap run android
, :


view , . , - AngularJS .

. , , Ionic Framework .

!


Play Market:
AppStore: - !
GitHub:

ng-app , AngularJS .

! Android . :
cd client phonegap run android
, :


view , . , - AngularJS .

. , , Ionic Framework .

!


Play Market:
AppStore: - !
GitHub:

Source: https://habr.com/ru/post/In215407/


All Articles