
PhoneGap рдПрдХ OpenSource рдкреНрд▓реЗрдЯрдлрд╝реЙрд░реНрдо рд╣реИ рдЬреЛ рдЖрдкрдХреЛ рд╡рд┐рднрд┐рдиреНрди рдкреНрд▓реЗрдЯрдлрд╛рд░реНрдореЛрдВ рдХреЗ рд▓рд┐рдП HTML, рдЬрд╛рд╡рд╛рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдФрд░ рд╕реАрдПрд╕рдПрд╕ рдореЗрдВ рдореЛрдмрд╛рдЗрд▓ рдПрдкреНрд▓рд┐рдХреЗрд╢рди рд╡рд┐рдХрд╕рд┐рдд рдХрд░рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрддрд╛ рд╣реИ (рд▓рдЧрднрдЧ рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдХреЛрдб рдХреЛ рдмрджрд▓рдиреЗ рдХреЗ рдмрд┐рдирд╛), рдЬрд┐рд╕рдореЗрдВ рд╢рд╛рдорд┐рд▓ рд╣реИрдВ: iOS, Android, рдмреНрд▓реИрдХрдмреЗрд░реА, WebOS, рд╕рд┐рдореНрдмрд┐рдпрди рдФрд░ рд╡рд┐рдВрдбреЛрдЬ рдореЛрдмрд╛рдЗрд▓ред рдЗрд╕рдХрд╛ рдЖрдХрд░реНрд╖рдг рдпрд╣ рд╣реИ рдХрд┐ рдЗрд╕реЗ рдПрдХ рд╡рд┐рд╢рд┐рд╖реНрдЯ рдордВрдЪ рдХреЗ рд▓рд┐рдП рд╡рд┐рдХрд╛рд╕ рдХреМрд╢рд▓ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдирд╣реАрдВ рд╣реЛрддреА рд╣реИред рдЖрдк рдЬрд╛рд╡рд╛рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдореЗрдВ рдЕрдкрдирд╛ рдЖрд╡реЗрджрди рд▓рд┐рдЦрддреЗ рд╣реИрдВ, рдорд╛рд░реНрдХрдЕрдк рдХреЗ рд▓рд┐рдП рдПрдЪрдЯреАрдПрдордПрд▓ рдФрд░ рд╕реАрдПрд╕рдПрд╕ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╣реИрдВред рдЖрдк рдПрдХ рдирд┐рдпрдорд┐рдд рд╡реЗрдмрд╕рд╛рдЗрдЯ рдпрд╛ рд╡реЗрдм рд╕реЗрд╡рд╛ рдХреЗ рд░реВрдк рдореЗрдВ рдПрдХ рдореЛрдмрд╛рдЗрд▓ рдПрдкреНрд▓рд┐рдХреЗрд╢рди рд▓рд┐рдЦрддреЗ рд╣реИрдВред
PhoneGap рдЗрдВрдЬрди рдмреНрд░рд╛рдЙрдЬрд╝рд░ API рдХрд╛ рд╡рд┐рд╕реНрддрд╛рд░ рдХрд░рддрд╛ рд╣реИ рдФрд░ рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рд╡рд┐рд╢реЗрд╖рддрд╛рдПрдВ рдЬреЛрдбрд╝рддрд╛ рд╣реИ: рдПрдХреНрд╕реЗрд▓реЗрд░реЛрдореАрдЯрд░ рддрдХ рдкрд╣реБрдВрдЪ, рдХреИрдорд░реЗ рддрдХ рдкрд╣реБрдВрдЪ (рдХреЗрд╡рд▓ рдлрд╝реЛрдЯреЛ рдЕрдм рддрдХ), рдХрдореНрдкрд╛рд╕ рддрдХ рдкрд╣реБрдВрдЪ, рд╕рдВрдкрд░реНрдХ рд╕реВрдЪреА рддрдХ рдкрд╣реБрдВрдЪ, рдСрдбрд┐рдпреЛ рдлрд╝рд╛рдЗрд▓реЛрдВ рдХреЛ рд░рд┐рдХреЙрд░реНрдб рдХрд░рдирд╛ рдФрд░ рд╕реБрдирдирд╛, рдлрд╝рд╛рдЗрд▓ рд╕рд┐рд╕реНрдЯрдо рддрдХ рдкрд╣реБрдВрдЪ рдкреНрд░рджрд╛рди рдХрд░рддрд╛ рд╣реИ, рдФрд░ рд╡рд┐рднрд┐рдиреНрди HTML5 рд░рд┐рдкреЙрдЬрд┐рдЯрд░реА рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрддрд╛ рд╣реИ рд▓реЛрдХрд▓рд╕реНрдЯреЛрд░реЗрдЬ, рд╡реЗрдм рдПрд╕рдХреНрдпреВрдПрд▓ рдЗрддреНрдпрд╛рджрд┐ рдФрд░ рдЖрдкрдХреЛ рдХрд┐рд╕реА рднреА рдХреНрд░реЙрд╕-рдбреЛрдореЗрди рдкрддреЗ рдХреЛ рдореВрд▓ рд░реВрдк рд╕реЗ рдПрдХреНрд╕реЗрд╕ рдХрд░рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрддрд╛ рд╣реИред
PhoneGap рдкреНрд▓реЗрдЯрдлреЙрд░реНрдо рдХреЗ рдЕрд▓рд╛рд╡рд╛, рдЕрдм рддрдХ, рдПрдХ рдХреНрд▓рд┐рдХ рдореЗрдВ рд╕рднреА рдЙрдкрдХрд░рдгреЛрдВ рдХреЗ рд▓рд┐рдП рдПрдХ рдореБрдлреНрдд рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдмрд┐рд▓реНрдбрд░ рд╣реИред
jQuery рдореЛрдмрд╛рдЗрд▓
рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рд╣рд░ рдХреЛрдИ рдЬрд╛рдирддрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рдореБрдЭреЗ рдЖрдкрдХреЛ рдлрд┐рд░ рд╕реЗ рдпрд╛рдж рджрд┐рд▓рд╛рдирд╛ рд╣реИред jQuery рдореЛрдмрд╛рдЗрд▓ рдПрдХ jQuery рдРрдб-рдСрди рд╣реИ рдЬреЛ рдЖрдкрдХреЛ рдмрд┐рдирд╛ рдХрд┐рд╕реА рд╕рдорд╕реНрдпрд╛ рдХреЗ рдореЛрдмрд╛рдЗрд▓ рд╡реЗрдмрд╕рд╛рдЗрдЯ рдФрд░ рдореЛрдмрд╛рдЗрд▓ рд╡реЗрдм рдПрдкреНрд▓рд┐рдХреЗрд╢рди рд╡рд┐рдХрд╕рд┐рдд рдХрд░рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрддрд╛ рд╣реИред
рдпрджрд┐ рдЖрдк HTML, рдЬрд╛рд╡рд╛рд╕реНрдХреНрд░рд┐рдкреНрдЯ, CSS, jQuery рдХреЛ рдЬрд╛рдирддреЗ рд╣реИрдВ рдФрд░ рдЬрд╛рд╡рд╛, рдСрдмреНрдЬреЗрдХреНрдЯрд┐рд╡-рд╕реА рдФрд░ рдЕрдиреНрдп рдХреЗ рд╕рд╛рде рд╕рдорд╕реНрдпрд╛рдПрдВ рд╣реИрдВ, рд▓реЗрдХрд┐рди рдореЛрдмрд╛рдЗрд▓ рд╡рд┐рдХрд╛рд╕ рдореЗрдВ рдЕрдкрдирд╛ рд╣рд╛рде рдЖрдЬрдорд╛рдирд╛ рдЪрд╛рд╣рддреЗ рд╣реИрдВ, рддреЛ рдпрд╣ рд▓реЗрдЦ рдЖрдкрдХреЗ рд▓рд┐рдП рд╣реИред
рд╣рдо рдПрдВрдбреНрд░реЙрдЗрдб рдХреЗ рд▓рд┐рдП рдПрдХ рдореЛрдмрд╛рдЗрд▓ рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдмрдирд╛рдПрдВрдЧреЗ (рдЖрдИрдУрдПрд╕ рдХреЛ рдкрд░реАрдХреНрд╖рдг рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдХреЗ рд▓рд┐рдП рдмрд╣реБрдд рдЕрдзрд┐рдХ рдкреНрд░рдпрд╛рд╕ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ: рдореИрдХ рдУрдирд▓реА, рдЖрдкрдХреЛ рдбреЗрд╡рд▓рдкрд░ рдкреНрд░рдорд╛рдг рдкрддреНрд░ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ) рдЬрд┐рд╕реЗ рддреБрдВрдмреНрд░ рд░реАрдбрд░ рдХрд╣рд╛ рдЬрд╛рддрд╛ рд╣реИ (рдореИрдВ рдПрдХ рдФрд░ рд╣реИрдмреНрд░рд┐рдбрд░ рдирд╣реАрдВ рдмрдирд╛рдирд╛ рдЪрд╛рд╣рддрд╛ рдерд╛)ред
рдПрдХ рд╡рд┐рдХрд╛рд╕ рд╕реЙрдлрд╝реНрдЯрд╡реЗрдпрд░ рдкреИрдХреЗрдЬ рд╕реНрдерд╛рдкрд┐рдд рдХрд░реЗрдВ
рдпрджрд┐ рдЖрдкрдХреЗ рдкрд╛рд╕ рдЧреНрд░рд╣рдг + рдПрдбреАрдЯреА рдкреНрд▓рдЧрдЗрди рд╣реИ, рддреЛ рдЗрд╕ рднрд╛рдЧ рдХреЛ рдЫреЛрдбрд╝ рджрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред
рдореВрд▓ рд▓реЗрдЦ ред
рд╡рд┐рд╕реНрддреГрдд рд▓реЗрдЦ ред
1.
рдЧреНрд░рд╣рдг рдХреНрд▓рд╛рд╕рд┐рдХ рдХреЛ рдбрд╛рдЙрдирд▓реЛрдб рдФрд░ рдЗрдВрд╕реНрдЯреЙрд▓ рдХрд░реЗрдВ
2.
рдЬрд╛рд╡рд╛ рдкреНрд▓реЗрдЯрдлреЙрд░реНрдо рдбрд╛рдЙрдирд▓реЛрдб рдХрд░реЗрдВ рдФрд░ рдЗрдВрд╕реНрдЯреЙрд▓ рдХрд░реЗрдВ
(JDK)3.
рдПрдВрдбреНрд░реЙрдпрдб рдПрд╕рдбреАрдХреЗ рдбрд╛рдЙрдирд▓реЛрдб рдФрд░ рдЗрдВрд╕реНрдЯреЙрд▓ рдХрд░реЗрдВ
рдПрд╕рдбреАрдХреЗ рдкреНрд░рдмрдВрдзрдХ рд▓реЙрдиреНрдЪ рдХрд░реЗрдВ, рд╕рднреА рдореЙрдбреНрдпреВрд▓ рдХрд╛ рдЪрдпрди рдХрд░реЗрдВ рдФрд░ рдЙрди рд╕рднреА рдХреЛ рд╕реНрдерд╛рдкрд┐рдд рдХрд░реЗрдВ (рдЗрд╕рдореЗрдВ рд▓рдЧрднрдЧ 20 рдорд┐рдирдЯ рд▓рдЧрддреЗ рд╣реИрдВ)
4.
рдПрдбреАрдЯреА рдкреНрд▓рдЧрдЗрди рд╕реНрдерд╛рдкрд┐рдд рдХрд░реЗрдВ
5.
рдПрдбреАрдЯреА рдкреНрд▓рдЧрдЗрди рдХреЙрдиреНрдлрд╝рд┐рдЧрд░ рдХрд░реЗрдВ - рдЖрдкрдХреЛ рдПрдВрдбреНрд░реЙрдЗрдб рдПрд╕рдбреАрдХреЗ рдХреЛ рдкрде рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ рдЕрдиреНрдпрдерд╛ рдХреБрдЫ рднреА рдХрд╛рдо рдирд╣реАрдВ рдХрд░реЗрдЧрд╛
6.
рдлреЛрдирдЧреИрдк рдХрд╛ рдирд╡реАрдирддрдо рд╕рдВрд╕реНрдХрд░рдг рдбрд╛рдЙрдирд▓реЛрдб рдХрд░реЗрдВ (рд▓рд┐рдЦрдиреЗ рдХреЗ рд╕рдордп рдпрд╣ 0.9.4 рдерд╛)
Android рдПрдореБрд▓реЗрдЯрд░ рдмрдирд╛рдирд╛
SDK рдкреНрд░рдмрдВрдзрдХ рдЦреЛрд▓реЗрдВ (рдпрд╣ рд╡рд┐рднрд┐рдиреНрди рд╡рд┐рдВрдбреЛ рдЦреЛрд▓ рд╕рдХрддрд╛ рд╣реИ, рдЙрдиреНрд╣реЗрдВ рдмрдВрдж рдХрд░ рд╕рдХрддрд╛ рд╣реИ), рд╡рд░реНрдЪреБрдЕрд▓ рдбрд┐рд╡рд╛рдЗрд╕ рдХрд╛ рдЪрдпрди рдХрд░реЗрдВ, рдирдпрд╛ рдХреНрд▓рд┐рдХ рдХрд░реЗрдВ ...
рд╕реНрдХреНрд░реАрдирд╢реЙрдЯ рдореЗрдВ рджрд┐рдЦрд╛рдП рдЕрдиреБрд╕рд╛рд░ рдПрдХ рдПрдореБрд▓реЗрдЯрд░ рдмрдирд╛рдПрдВ:
рдорд╣рддреНрд╡рдкреВрд░реНрдг: Android 2.2 рдЖрд╡рд╢реНрдпрдХ рд╣реИред рдпрджрд┐ рдЖрдк Windows рдкрд░ рд╣реИрдВ рдФрд░ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдирд╛рдо рдореЗрдВ ANSI рд╡рд░реНрдг рдирд╣реАрдВ рд╣реИрдВ, рддреЛ
c:\Users\\.android\avd\Android-2_2.avd
рдмрдирд╛рдиреЗ рдХреЗ рдмрд╛рдж
c:\Users\\.android\avd\Android-2_2.avd
рдирд┐рдореНрди рдХрд╛рд░реНрдп рдХрд░реЗрдВ:
c:\Users\\.android\avd\Android-2_2.avd
рдХреЛ рдХрд┐рд╕реА рдЕрдиреНрдп рдлрд╝реЛрд▓реНрдбрд░ рдореЗрдВ, рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП
c:\Android\Android-2_2.avd
, рдлрд╝рд╛рдЗрд▓ рдХреЛ рдЦреЛрд▓реЗрдВ
Android-2_2.ini
рдФрд░
path=
рдХреЛ рдЙрдкрдпреБрдХреНрдд рдПрдХ рдореЗрдВ рдмрджрд▓реЗрдВред
рдкрд░рд┐рдпреЛрдЬрдирд╛ рдирд┐рд░реНрдорд╛рдг
1. рдлрд╝рд╛рдЗрд▓ рдореЗрдиреВ рд╕реЗ рдЧреНрд░рд╣рдг рд▓реЙрдиреНрдЪ рдХрд░реЗрдВ,
New > Android Project
рдЖрдзрд┐рдХрд╛рд░рд┐рдХ рдЯреНрдпреВрдЯреЛрд░рд┐рдпрд▓ рд╕реЗ рд╕реНрдХреНрд░реАрдирд╢реЙрдЯ2. рдкреНрд░реЛрдЬреЗрдХреНрдЯ рд░реВрдЯ рдбрд╛рдпрд░реЗрдХреНрдЯрд░реА рдореЗрдВ, 2 рдлрд╝реЛрд▓реНрдбрд░реНрд╕ / рд▓рд┐рдмрд╛рд╕ рдФрд░ / рдПрд╕реЗрдЯреНрд╕ / www рдмрдирд╛рдПрдВ
Phonegap-0.9.4 рд╕рдВрдЧреНрд░рд╣ рд╕реЗ, phonegap.jar рдХреЛ рдХреЙрдкреА рдХрд░реЗрдВ / libs
рд░рд┐рдкреЙрдЬрд┐рдЯрд░реА рд╕реЗ / рдПрд╕реЗрдЯреНрд╕ / www рдореЗрдВ Git рдЪреЗрдХрдЖрдЙрдЯ рдЪрд▓рд╛рдПрдВ: git: //github.com/azproduction/phonegap-tumblr-reader.git рдпрд╛
github.com/azproduction-bggap-tumblr-reader/archives/master рдФрд░ unzip рд╕реЗ рд╕рдВрдЧреНрд░рд╣ рдбрд╛рдЙрдирд▓реЛрдб рдХрд░реЗрдВ / рдЖрд╕реНрддрд┐рдпрд╛рдВ / www рд░рд┐рдкреЙрдЬрд┐рдЯрд░реА рдореЗрдВ рдПрдХ рддреИрдпрд╛рд░-рддреИрдпрд╛рд░ рдПрдкреНрд▓рд┐рдХреЗрд╢рди рд╣реИ рддрд╛рдХрд┐ рдЖрдкрдХреЛ рд▓реЗрдЦ рд╕реЗ рдХреЙрдкреА-рдкреЗрд╕реНрдЯ рди рдХрд░рдирд╛ рдкрдбрд╝реЗред
3. рдмрд┐рд▓реНрдб рдкрде рдореЗрдВ
phonegap.jar
рдЬреЛрдбрд╝реЗрдВред рдРрд╕рд╛ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рдкреНрд░реЛрдЬреЗрдХреНрдЯ рд░реВрдЯ рдкрд░ рд░рд╛рдЗрдЯ-рдХреНрд▓рд┐рдХ рдХрд░реЗрдВ, рдЧреБрдг рдЪреБрдиреЗрдВ, рд╕реВрдЪреА рд╕реЗ рдЬрд╛рд╡рд╛ рдмрд┐рд▓реНрдб рдкрде рдЪреБрдиреЗрдВ, рд▓рд╛рдЗрдмреНрд░реЗрд░реА рдЯреИрдм рдЪреБрдиреЗрдВ, рдЬрд╛рд░ рдЬреЛрдбрд╝реЗрдВ ... рдкрд░ рдХреНрд▓рд┐рдХ рдХрд░реЗрдВ рдФрд░ рдлреЛрдирдЧреИрдк рдкрде рдХреЗ рд▓рд┐рдП рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдХрд░реЗрдВред

4.
TumblrReader.java
рдлрд╝рд╛рдЗрд▓ рдЦреЛрд▓реЗрдВ, рдЬреЛ src / folder рдореЗрдВ рд╕реНрдерд┐рдд рд╣реИ
4.1ред
Activity
рдХреЛ
DroidGap
рдмрджрд▓реЗрдВ
4.2ред
super.loadUrl("file:///android_asset/www/index.html");
setContentView()
рдХреЛ
super.loadUrl("file:///android_asset/www/index.html");
setContentView()
рдмрджрд▓реЗрдВ
super.loadUrl("file:///android_asset/www/index.html");
4.3ред
import com.phonegap.*;
рдЬреЛрдбрд╝реЗрдВ
import com.phonegap.*;

6. AndroidManifest.xml рдЦреЛрд▓реЗрдВ, рдирд┐рдореНрди рдХреЛрдб рдЬреЛрдбрд╝реЗрдВ (рдпрд╣ рдХреБрдЫ рд╕рдВрд╕рд╛рдзрдиреЛрдВ рддрдХ рдкрд╣реБрдВрдЪ рджреЗрддрд╛ рд╣реИ) рд╣рдореЗрдВ рдХреЗрд╡рд▓
android.permission.INTERNET
рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ:
<supports-screens android:largeScreens="true" android:normalScreens="true" android:smallScreens="true" android:resizeable="true" android:anyDensity="true" /> <uses-permission android:name="android.permission.INTERNET" />
рдпрджрд┐ рдЖрдк рдПрдкреАрдЖрдИ рдХреЗ рд╕рд╛рде рдкреНрд░рдпреЛрдЧ рдХрд░рдиреЗ рдЬрд╛ рд░рд╣реЗ рд╣реИрдВ, рддреЛ рд╕рднреА рд╡рд┐рдХрд▓реНрдк рдЬреЛрдбрд╝реЗрдВ:
<uses-permission android:name="android.permission.CAMERA" /> <uses-permission android:name="android.permission.VIBRATE" /> <uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION" /> <uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" /> <uses-permission android:name="android.permission.ACCESS_LOCATION_EXTRA_COMMANDS" /> <uses-permission android:name="android.permission.READ_PHONE_STATE" /> <uses-permission android:name="android.permission.INTERNET" /> <uses-permission android:name="android.permission.RECEIVE_SMS" /> <uses-permission android:name="android.permission.RECORD_AUDIO" /> <uses-permission android:name="android.permission.MODIFY_AUDIO_SETTINGS" /> <uses-permission android:name="android.permission.READ_CONTACTS" /> <uses-permission android:name="android.permission.WRITE_CONTACTS" /> <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" /> <uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
рдЧрддрд┐рд╡рд┐рдзрд┐ рдЯреИрдЧ рдореЗрдВ
android:configChanges="orientation|keyboardHidden"
рдЬреЛрдбрд╝реЗрдВ
android:configChanges="orientation|keyboardHidden"

7. рдЕрдкрдиреЗ рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдХреЛ рдПрдореБрд▓реЗрдЯрд░ рдореЗрдВ
Run As > Android Application
:
Run As > Android Application
рдпрджрд┐ рдЖрдкрдиреЗ рд╕рдм рдХреБрдЫ рд╕рд╣реА рдврдВрдЧ рд╕реЗ рдХрд┐рдпрд╛ рд╣реИ, рддреЛ рдЖрдкрдХреЗ рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдХреЗ рд╕рд╛рде рдПрдореБрд▓реЗрдЯрд░ рдХреЛ рдЦреЛрд▓рдирд╛ рдЪрд╛рд╣рд┐рдПред
Tumblr Reader рдмрдирд╛рдирд╛
рдмрд╛рдХреА рд▓реЗрдЦ рдореЗрдВ рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдХреЗ рдЪрд░рдгрдмрджреНрдз рдирд┐рд░реНрдорд╛рдг рдХрд╛ рд╡рд░реНрдгрди рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИред рдЕрдм рдЧреНрд░рд╣рдг рдХреЛ рдХрдо рд╕реЗ рдХрдо рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ рдФрд░ рдЕрдкрдиреЗ рдкрд╕рдВрджреАрджрд╛ рд╕рдВрдкрд╛рджрдХ рдХреЛ рдЦреЛрд▓ рд╕рдХрддреЗ рд╣реИрдВред рдПрдореБрд▓реЗрдЯрд░ рдореЗрдВ рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдХреЛ рдкреБрдирдГ рдЖрд░рдВрдн рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЧреНрд░рд╣рдг рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрддреА рд╣реИред
рдЖрд╡реЗрджрди рдХрдВрдХрд╛рд▓ index.html
рдореИрдВ jQuery рдХреЗ рдореЛрдмрд╛рдЗрд▓ рдкреЗрдЬ рдмрдирд╛рдиреЗ рдХреЗ рд╕рд┐рджреНрдзрд╛рдВрддреЛрдВ рдкрд░ рдирд╣реАрдВ рд░реБрдХрддрд╛ред рдЖрдк рдЗрд╕реЗ рд╕реНрд╡рдпрдВ рдкрдврд╝ рд╕рдХрддреЗ рд╣реИрдВред
/assets/www
рдлрд╝реЛрд▓реНрдбрд░ рдореЗрдВ
index.html
рдмрдирд╛рдПрдБ
<!DOCTYPE HTML> <html> <head> </head> <body> </body> </html>
рд╣рдо рдЖрд╡рд╢реНрдпрдХ рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдХрдиреЗрдХреНрдЯ рдХрд░рддреЗ рд╣реИрдВ
<head> <title>Tumblr Reader</title> <link rel="stylesheet" href="libs/jquery.mobile.css" /> <link rel="stylesheet" href="css/main.css" /> <script type="text/javascript" charset="utf-8" src="libs/jquery.js"></script> <script type="text/javascript" charset="utf-8" src="libs/jquery.mobile.js"></script> <script type="text/javascript" charset="utf-8" src="libs/phonegap.js"></script> <script type="text/javascript" charset="utf-8" src="js/main.js"></script> </head>
рд╢рд░реАрд░ рдореЗрдВ jQuery рдХреЗ рдореЛрдмрд╛рдЗрд▓ рдкреЗрдЬ рдХреЛ рдЬреЛрдбрд╝реЗрдВ - "рдЫреЛрдЯреА рддрд╕реНрд╡реАрд░реЛрдВ рдХреА рд╕реВрдЪреА" рдЙрд░реНрдл тАЛтАЛрдбреИрд╢рдмреЛрд░реНрдб
<div data-role="page" id="dashboard"> <div data-role="header" data-position="fixed"> <a href="#options" data-icon="gear">Options</a> <h1>Dashboard</h1> </div> <div data-role="content"> <div class="ui-grid-b" id="dashboard-list"> </div> </div> </div>
рдЬрдм рдЖрдк рдПрдХ рдЫреЛрдЯреА рддрд╕реНрд╡реАрд░ рдкрд░ рдХреНрд▓рд┐рдХ рдХрд░рддреЗ рд╣реИрдВ, рддреЛ рдПрдХ рдмрдбрд╝рд╛ рд╡рд╛рд▓рд╛ рдПрдХ рдкреЗрдЬ рдЦреБрд▓реЗрдЧрд╛, рдЬрд┐рд╕рдореЗрдВ "рдмрдбрд╝реА рддрд╕реНрд╡реАрд░" рдкреЗрдЬ рд╣реЛрдЧрд╛
<div data-role="page" id="dialog"> <div data-role="header"> <a data-rel="back" data-icon="back">Back</a> <h1>Image</h1> <a href="about:blank" data-icon="search" data-theme="b" id="full-image">Full</a> </div> <div data-role="content"> <p><img src="about:blank" /></p> </div> </div>
рдбрд┐рдлрд╝реЙрд▓реНрдЯ рд░реВрдк рд╕реЗ, рдЪрд┐рддреНрд░реЛрдВ рдХреЛ design.tumblr.com рд╕реЗ рдбрд╛рдЙрдирд▓реЛрдб рдХрд┐рдпрд╛ рдЬрд╛рдПрдЧрд╛ (рдкрд╣рд▓реА рдмрд╛рдд рдЬреЛ рдорди рдореЗрдВ рдЖрдИ), рдПрдХ рд╕реЗрдЯрд┐рдВрдЧ рдкреГрд╖реНрда рдЬреЛрдбрд╝реЗрдВ рддрд╛рдХрд┐ рдирд╛рдо рдмрджрд▓рд╛ рдЬрд╛ рд╕рдХреЗ:
<div data-role="page" id="options"> <div data-role="header"> <h1>Options</h1> </div> <div data-role="content"> <div data-role="fieldcontain"> <label for="name">Tumblr user:</label> <input type="text" name="name" id="options-name" value="" /> </div> <a data-role="button">Ok</a> </div> </div>
Github.com/azproduction/phonegap-tumblr-reader/blob/master/india.html рдХрд╛ рдкреВрд░реНрдг рд╕рдВрд╕реНрдХрд░рдг
рдХрдВрдХрд╛рд▓ рддреИрдпрд╛рд░ рд╣реИ, рдХреБрдЫ рд╕реАрдПрд╕рдПрд╕ (рдлрд╝рд╛рдЗрд▓ рд╕реАрдПрд╕рдПрд╕ / main.css) рдЬреЛрдбрд╝реЗрдВ
#dashboard-list div, #dialog p { text-align: center; }
рдПрдкреНрд▓рд┐рдХреЗрд╢рди рд▓реЙрдЬрд┐рдХ js / main.js
рдкрд╣рд▓реЗ рд╣рдо JSON рдЖрдЙрдЯрдкреБрдЯ рд╕реЗрдХреНрд╢рди рдореЗрдВ
Tumblr API рдХреА рдЬрд╛рдВрдЪ рдХрд░реЗрдВрдЧреЗ, JSON рдлреЙрд░реНрдореЗрдЯ рдХреЛ рдереЛрдбрд╝рд╛ рд╕рд╛ рдмрддрд╛рдпрд╛ рдЧрдпрд╛ рд╣реИ: рд╕рдВрджрд░реНрдн рджреНрд╡рд╛рд░рд╛
http://%user%.tumblr.com/api/read/json
рдЗрд╕ рдкреНрд░рд╛рд░реВрдк рдХрд╛ рдЬрд╛рд╡рд╛рд╕реНрдХреНрд░рд┐рдкреНрдЯ рд╣рдорд╛рд░реЗ рдкрд╛рд╕ рдЖрдПрдЧрд╛:
var tumblr_api_read = {}
рдпрд╣ рдПрдХ рджрдпрд╛ рд╣реИ рдХрд┐ рдпрд╣ рд╢реБрджреНрдз JSON (P) рдирд╣реАрдВ рд╣реИ, рд▓реЗрдХрд┐рди рд╣рдорд╛рд░реЗ рдкрд╛рд╕ jQuery.getScript рд╣реИ рдЬреЛ рд╣рдорд╛рд░реЗ рд▓рд┐рдП рд╕рдм рдХреБрдЫ рд╣рд▓ рдХрд░реЗрдЧрд╛ред рдкреНрд░рд╛рд░реВрдк рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдЕрдзрд┐рдХ рдХреБрдЫ рднреА рдЬреНрдЮрд╛рдд рдирд╣реАрдВ рд╣реИред рд╕реНрд░реЛрдд рд╕реЗ рдпрд╣ рд╕реНрдкрд╖реНрдЯ рд╣реЛ рдЧрдпрд╛ рдХрд┐
tumblr_api_read.tumblelog.title
рдмреНрд▓реЙрдЧ рдХрд╛ рд╢реАрд░реНрд╖рдХ рд╣реИ, рдФрд░
tumblr_api_read.posts
рдкреНрд░рд╛рд░реВрдк рдореЗрдВ рдкрджреЛрдВ рдХреА рдПрдХ рд╕рд░рдгреА рд╣реИ:
[{ 'type': 'photo', 'photo-url-1280': 'http://...', 'photo-url-250': 'http://...', 'photo-url-75': 'http://...', }, ...]
рд╣рдо рдХреЗрд╡рд▓ рдЗрди рдХреНрд╖реЗрддреНрд░реЛрдВ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░реЗрдВрдЧреЗ, рдЗрд╕рд▓рд┐рдП рдореИрдВ рдмрд╛рдХреА рдХрд╛ рд╡рд░реНрдгрди рдирд╣реАрдВ рдХрд░реВрдВрдЧрд╛ред
рдЪрд┐рддреНрд░реЛрдВ рдХреА рд╕реВрдЪреА рдмрдирд╛рдиреЗ рдХреЗ рд▓рд┐рдП рд░реЗрдВрдбрд░ рдХрд░реЗрдВ
рдкреНрд░рддреНрдпреЗрдХ рдЪрд┐рддреНрд░ рдлрд╛рд░реНрдо рдХрд╛ рд╣реЛрдЧрд╛:
<div class="ui-block-a"> <a href="#dialog"> <img data-full-src="http://..." data-big-src="http://..." src="http://..." /> </a> </div>
рд░реЗрдВрдбрд░ рдХреЛрдб:
var render = function (posts) { var view = '',
рдбреЗрдЯрд╛ рд▓реЛрдбрд░ Tumblr API рдХреЗ рд╕рд╛рде
URL рд▓реЛрдбрд░ рдЦреАрдВрдЪрддрд╛ рд╣реИ
http://%user%.tumblr.com/api/read/json
рдФрд░ рд╕рдВрдмрдВрдзрд┐рдд рдбреЗрдЯрд╛ рдкреНрд░рд╛рдкреНрдд рдХрд░рддрд╛ рд╣реИ, рдбреЗрдЯрд╛ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рд╣рдо рдЪрд┐рддреНрд░реЛрдВ рдХреА рдПрдХ рд╕реВрдЪреА рдмрдирд╛рддреЗ рд╣реИрдВред
var load = function (user) { user = user || 'tumblr';
рдЕрдиреБрдкреНрд░рдпреЛрдЧ рдЗрдирд┐рд╢рд┐рдпрд▓рд╛рдЗрдЬрд╝рд░
рдпрд╣ рд▓реЛрдХрд▓рд╕реНрдЯреЛрд░реЗрдЬ, рдкреНрд░реАрд▓реЛрдбреНрд╕ рд╕реЗ рдпреВрдЬрд░рдиреЗрдо рдХреЛ рдЗрдирд┐рд╢рд┐рдпрд▓рд╛рдЗрдЬрд╝ рдХрд░рддрд╛ рд╣реИ, рдФрд░ рдЕрдиреНрдп рдЫреЛрдЯреЗ рдХрд╛рдо рдХрд░рддрд╛ рд╣реИред
var init = function () {
рд╕реНрд░реЛрдд main.js:
github.com/azproduction/phonegap-tumblr-reader/blob/master/js/main.jsрдЕрдм рд╣рдорд╛рд░рд╛ рдЖрд╡реЗрджрди рдкреВрд░реА рддрд░рд╣ рд╕реЗ рддреИрдпрд╛рд░ рд╣реИ рдФрд░ рдЖрдк рдЗрд╕реЗ
Run As > Android Application
рдПрдореБрд▓реЗрдЯрд░ рдореЗрдВ рдЪрд▓рд╛ рд╕рдХрддреЗ рд╣реИрдВ, рдпрджрд┐ рдЖрдкрдиреЗ рдПрдХ рдорд╛рдореВрд▓реА рд╕рдВрдкрд╛рджрди рдХрд┐рдпрд╛ рд╣реИ рдФрд░ рдЖрд╡реЗрджрди рдХрд╛ рдкреБрдирд░реНрдирд┐рд░реНрдорд╛рдг рдирд╣реАрдВ рдХрд░рдирд╛ рдЪрд╛рд╣рддреЗ рд╣реИрдВ, рддреЛ рдмрд╕ рдХрд┐рд╕реА рднреА WebKit рдмреНрд░рд╛рдЙрдЬрд╝рд░ рдореЗрдВ
index.html
рдЦреЛрд▓реЗрдВред
рд╣рдо PhoneGap рдмрд┐рд▓реНрдб рдореЗрдВ рд╕рднреА рдкреНрд▓реЗрдЯрдлрд╛рд░реНрдореЛрдВ рдХреЗ рд▓рд┐рдП рдЖрд╡реЗрджрди рдПрдХрддреНрд░ рдХрд░рддреЗ рд╣реИрдВ
1. рдЖрдкрдХреЛ рдкреГрд╖реНрда
build.phonegap.com рдкрд░ рдПрдХ рдЖрд╡реЗрджрди рднреЗрдЬрдирд╛
рд╣реЛрдЧрд╛ (рдореБрдЭреЗ 5 рдорд┐рдирдЯ рдореЗрдВ рдЬрд╡рд╛рдм рдорд┐рд▓рд╛)
2. рдмреАрдЯрд╛ рдХреЛрдб рд╡рд╛рд▓рд╛ рдПрдХ рдкрддреНрд░ рдЖрдкрдХреЗ рдореЗрд▓рд┐рдВрдЧ рдкрддреЗ рдкрд░ рдЖрдПрдЧрд╛, рдЗрд╕реЗ
build.phonegap.com/people/sign_up рдореЗрдВ рдЙрдкрдпреЛрдЧ рдХрд░реЗрдВ
3. рдПрдХ рдмрд╛рд░ рдЬрдм рдЖрдк рд▓реЙрдЧ рдЗрди рдХрд░ рд▓реЗрдВ, рддреЛ
build.phonegap.com/apps рдкрд░
рдЬрд╛рдПрдВ4. рдЕрдкрд▓реЛрдб рдПрдХ рд╕рдВрдЧреНрд░рд╣ рдпрд╛ index.html рдлрд╝рд╛рдЗрд▓ рд╡рд┐рдХрд▓реНрдк рдХрд╛ рдЪрдпрди рдХрд░реЗрдВред
5. / .zip рдореЗрдВ / рдЖрд╕реНрддрд┐рдпреЛрдВ / www рдХреА рд╕рд╛рдордЧреНрд░реА рдкреИрдХ рдХрд░реЗрдВ рдФрд░ рд╕рдВрдЧреНрд░рд╣ рднреЗрдЬреЗрдВ, рдЖрдк рд╕рдВрдЧреНрд░рд╣ рдХреЗ рдмрдЬрд╛рдп рдореЗрд░реЗ рдЧрд┐рдЯ рд░рд┐рдкреЙрдЬрд┐рдЯрд░реА рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ
6. Create рдкрд░ рдХреНрд▓рд┐рдХ рдХрд░реЗрдВ, рдереЛрдбрд╝рд╛ рдЗрдВрддрдЬрд╛рд░ рдХрд░реЗрдВ рдЬрдм PhoneGap Build рд╕рднреА рдкреНрд▓реЗрдЯрдлрд╛рд░реНрдореЛрдВ рдХреЗ рд▓рд┐рдП рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдмрдирд╛рддрд╛ рд╣реИ
рдЖрдкрдХрд╛ рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдЕрдм рдбрд╛рдЙрдирд▓реЛрдб
build.phonegap.com/apps/9296 (рдореЗрд░рд╛ рдирд┐рд░реНрдорд╛рдг) рдХреЗ рд▓рд┐рдП рдЙрдкрд▓рдмреНрдз рд╣реИ
рд╕рдВрджрд░реНрдн
1. рдпрджрд┐ рдЖрдк рдХреБрдЫ рднреА рдЗрдХрдЯреНрдард╛ рдХрд░рдиреЗ рдФрд░ рдбрд╛рдЙрдирд▓реЛрдб рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдмрд╣реБрдд рдЖрд▓рд╕реА рд╣реИрдВ, рддреЛ рдЖрдк
рдСрдирд▓рд╛рдЗрди рдЖрд╡реЗрджрди рджреЗрдЦ рд╕рдХрддреЗ рд╣реИрдВ
2. рдЖрдк рдПрдВрдбреНрд░реЙрдЗрдб, рд╡реЗрдмрдУрдПрд╕, рд╕рд┐рдореНрдмрд┐рдпрди рдХреЗ рд▓рд┐рдП рддреИрдпрд╛рд░ рдЖрд╡реЗрджрди рдХреЛ рдпрд╣рд╛рдВ рдбрд╛рдЙрдирд▓реЛрдб рдХрд░ рд╕рдХрддреЗ
рд╣реИрдВ (рдЖрдкрдХреЛ рдлреЛрдирдЧреИрдк рдмрд┐рд▓реНрдб рдХреЗ рд╕рд╛рде рдкрдВрдЬреАрдХрд░рдг рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ) рдЖрдИрдУрдПрд╕ рдХреЛ рдПрдХ рдкреНрд░рдорд╛рдг рдкрддреНрд░ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрддреА рд╣реИ, рдмреНрд▓реИрдХрдмреЗрд░реА рдХреЛ рд╡рд┐рд╢реЗрд╖ рдлрд╝рд╛рдЗрд▓ рдирд╛рдореЛрдВ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрддреА рд╣реИ, рдЗрд╕рд▓рд┐рдП рдХреЛрдИ рднреА рдирд╣реАрдВ рд╣реИред
3. рдкрдВрдЬреАрдХрд░рдг рдХреЗ рдмрд┐рдирд╛ рдбрд╛рдЙрдирд▓реЛрдб рдХрд░реЗрдВ
рдПрдВрдбреНрд░реЙрдЗрдб 1 (рдмрд┐рд▓реНрдбрд┐рдВрдЧ рдлреЛрдирдЧреИрдк рдмрд┐рд▓реНрдб рдореЗрдВ рдЕрддрд┐рд░рд┐рдХреНрдд рдЕрдзрд┐рдХрд╛рд░реЛрдВ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ),
рдПрдВрдбреНрд░реЙрдЗрдб 2 (рдореИрдиреБрдЕрд▓ рдЕрд╕реЗрдВрдмрд▓реА рдХреЗ рд▓рд┐рдП рдХреЗрд╡рд▓
android.permission.INTERNET
),
рд╡реЗрдмрдУрдПрд╕ ,
рд╕рд┐рдореНрдмрд┐рдпрди рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИGitHub рдкрд░ 4. Tumblr Reader рд░рд┐рдкреЙрдЬрд┐рдЯрд░реА
рдкреНрд░рд▓реЗрдЦрди
1.
рдлреЛрдирдЧреИрдк рдбреЙрдХреНрдпреВрдореЗрдВрдЯреЗрд╢рди2.
рдлреЛрдирдЧреИрдк рд╡рд┐рдХреА: рдПрдВрдбреНрд░реЙрдЗрдб рдЧреНрд░рд╣рдг рдХреНрд╡рд┐рдХрд╕реНрдЯрд╛рд░реНрдЯ3.
Tumblr API4.
jQuery рдХреЗ рдореЛрдмрд╛рдЗрд▓ рдбреЙрдХреНрд╕рдореИрдВрдиреЗ рдПрдХ рд╕рд╛рдзрд╛рд░рдг рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдХрд╛ рдкреНрд░рджрд░реНрд╢рди рдХрд┐рдпрд╛ рдЬреЛ рд╡реЗрдм рдкреЗрдЬ рдХреЗ рд░реВрдк рдореЗрдВ рдХрд╛рдо рдХрд░ рд╕рдХрддрд╛ рд╣реИ, рдЖрдк рдлреЛрди рдХреЗ рдПрдкреАрдЖрдИ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдХреБрдЫ рдФрд░ рдЬрдЯрд┐рд▓ рдмрдирд╛рдиреЗ рдХреА рдХреЛрд╢рд┐рд╢ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред рд╕реБрдЭрд╛рд╡, рдЗрдЪреНрдЫрд╛, рдЖрд▓реЛрдЪрдирд╛ рдХрд╛ рд╕реНрд╡рд╛рдЧрдд рд╣реИ!