рд╣реИрд▓реЛ, рд╣рд╛рдмрд░рд╛!
рдореБрдЭреЗ рдЬрд╛рд╡рд╛рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдЧреЗрдореНрд╕ рдмрд╣реБрдд рдкрд╕рдВрдж рд╣реИрдВ рдФрд░ рд╕рднреА рдкреНрд▓реЗрдЯрдлреЙрд░реНрдо рдкрд░ рдкреЛрд░реНрдЯ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЙрдирдХреЗ рдХреЛрдб рдХреЛ рдмреБрд▓реЗрдЯрдкреНрд░реВрдл рдмрдирд╛рдиреЗ рдХреА рдХреЛрд╢рд┐рд╢ рдХрд░рддреЗ рд╣реИрдВред рдЫрд╣ рдорд╣реАрдиреЗ рдкрд╣рд▓реЗ, рдореИрдВрдиреЗ рдкрд╣рд▓реЗ рд╣реА рдПрдВрдбреНрд░реЙрдЗрдб рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдХреЗ рдЕрд╕реЗрдВрдмрд▓реА рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рд▓рд┐рдЦрд╛ рдерд╛ рдФрд░ рдЖрдЬ рдореИрдВ рдЗрд╕ рд╡рд┐рд╖рдп рдХреЛ рдФрд░ рдЕрдзрд┐рдХ рд╡рд┐рд╕реНрддрд╛рд░ рд╕реЗ рдкреНрд░рдХрдЯ рдХрд░рдирд╛ рдЪрд╛рд╣реВрдВрдЧрд╛ред
рдореИрдВ рддреБрд░рдВрдд рдЖрдкрдХреЛ рдЪреЗрддрд╛рд╡рдиреА рджреВрдВрдЧрд╛ рдХрд┐ рдореБрдЭреЗ PhoneGap рдХреЛ рдЫреЛрдбрд╝рдирд╛ рдкрдбрд╝рд╛, рдХреНрдпреЛрдВрдХрд┐ рджреЛ рдкрд░рд┐рдпреЛрдЬрдирд╛рдУрдВ рдореЗрдВ рдЗрд╕рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХрд╛ рдЕрдиреБрднрд╡ рдореБрдЭреЗ рдкрд░реЗрд╢рд╛рди рдХрд░рддрд╛ рд╣реИред рдпрд╣ "рд╣реИрд▓реЛ рд╡рд░реНрд▓реНрдб" рдЕрдиреБрдкреНрд░рдпреЛрдЧреЛрдВ рдХреЗ рд╕рд╛рде рдмрд╣реБрдд рдЕрдЪреНрдЫрд╛ рдХрд╛рдо рдХрд░рддрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рдкрд╛рдЗрдк рд▓рд╛рдЗрди рд╡рд╛рд▓реЗ рдЕрд╕реЗрдВрдмрд▓реА рдХреЗ рд╕рд╛рде, рдмрд╛рд░реАрдХрд┐рдпреЛрдВ рдХреЛ рдПрдХ рдкрдВрдХреНрддрд┐ рдореЗрдВ рдкреЙрдк рдЕрдк рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред
PhoneGap рдХреНрдпреЛрдВ рдирд╣реАрдВ рдЧрдпрд╛:1. рдпрд╣ рд╢реБрд░реВ рдореЗрдВ рдЦрд╛рд▓реА рд╣реИред рд▓рдЧрд╛рддрд╛рд░ рдЕрдзрд┐рдХ рд╕реЗ рдЕрдзрд┐рдХ рдирдП рдореЙрдбреНрдпреВрд▓ рдХрдиреЗрдХреНрдЯ рдХрд░рдирд╛ рд╣реИред
2. рдХрдИ рдореЙрдбреНрдпреВрд▓ рдХреБрдЯрд┐рд▓ рд░реВрдк рд╕реЗ рд▓рд┐рдЦреЗ рдЧрдП рд╣реИрдВред рд╡реЗ рдпрд╛ рддреЛ рдмрд╣реБрдд рдЕрдзрд┐рдХ рд▓реЗрддреЗ рд╣реИрдВ, рдпрд╛ рдЕрдкреНрд░рддреНрдпрд╛рд╢рд┐рдд рд░реВрдк рд╕реЗ рд╡реНрдпрд╡рд╣рд╛рд░ рдХрд░рддреЗ рд╣реИрдВред рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдПрд╕рдПрдордПрд╕ рднреЗрдЬрдиреЗ рдХреЗ рд▓рд┐рдП рдПрдВрдбреНрд░реЙрдЗрдб рдХреЗ рд▓рд┐рдП рджреЛ рдореЙрдбреНрдпреВрд▓ рдореЗрдВ рд╕реЗ рдПрдХ рдиреЗ рдХрд╛рдо рдирд╣реАрдВ рдХрд┐рдпрд╛, рджреВрд╕рд░рд╛ рдХрд┐рд╕реА рднреА рд╕реНрдерд┐рддрд┐ рдореЗрдВ рд╕рд╣реА рднреЗрдЬрд╛ рдЧрдпрд╛ред
3. рдкреНрд░рд╛рдердорд┐рдХ рдЪреАрдЬреЗрдВ, рдЬреИрд╕реЗ рдХрд┐ рдИрдПрдордИрдЖрдИ рдлреЛрди рдкреНрд░рд╛рдкреНрдд рдХрд░рдирд╛ рд╣рд▓ рдирд╣реАрдВ рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИред рд▓рдЧрд╛рддрд╛рд░ рдЦрддреНрдо рдХрд░рдирд╛ рдЖрд╡рд╢реНрдпрдХ рд╣реИред

рдореБрдЭреЗ рдЕрднреА рднреА PhoneGap рдХрд╛ рд╕рд╛рд░ рд╕рдордЭ рдирд╣реАрдВ рдЖ рд░рд╣рд╛ рд╣реИред рд╢реБрд░реВ рдореЗрдВ, рдЙрдиреНрд╣реЗрдВ рдПрдХ рдмрдЯрди "рдЕрдЪреНрдЫрд╛ рдХрд░рдиреЗ" рдХреА рдЙрдореНрдореАрдж рдереА, рд▓реЗрдХрд┐рди рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рд╡рд╣ рдХреБрдЫ рднреА рдирд╣реАрдВ рдХрд░рддреЗ рд╣реИрдВред рдкреНрд░рддреНрдпреЗрдХ рдкреНрд▓реЗрдЯрдлреЙрд░реНрдо рдХреЗ рддрд╣рдд, рдореБрдЭреЗ рдЕрднреА рднреА рдПрд╕рдбреАрдХреЗ рдбрд╛рд▓рдиреА рд╣реЛрдЧреАред рдкреНрд░рддреНрдпреЗрдХ рдХрд╛рд░реНрдп рдХреЗ рддрд╣рдд рдореЙрдбреНрдпреВрд▓ рдХреЛ рдЦреЛрдЬрдирд╛ рдФрд░ рд╕реНрдерд╛рдкрд┐рдд рдХрд░рдирд╛ рд╣реИред рдореЙрдбреНрдпреВрд▓ рдЦреБрдж рднреА рд╕реАрдорд┐рдд рд╣реИрдВред рд╡реЗ рдХреЗрд╡рд▓ рдкреНрд▓реЗрдЯрдлрд╛рд░реНрдореЛрдВ рдХреЗ рд╣рд┐рд╕реНрд╕реЗ рдХреЗ рд▓рд┐рдП рдХреБрдЫ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ, рдФрд░ рдпрджрд┐ рджреВрд╕рд░реЛрдВ рдХреЗ рд▓рд┐рдП рдЖрд╡рд╢реНрдпрдХ рд╣реИ, рддреЛ рдЖрдкрдХреЛ рдЙрди рдореЙрдбреНрдпреВрд▓ рдХреЗ рд▓рд┐рдП рдлрд┐рд░ рд╕реЗ рджреЗрдЦрдирд╛ рд╣реЛрдЧрд╛ рдЬреЛ рдЕрдиреНрдп рдЙрдкрдХрд░рдгреЛрдВ рдкрд░ рдРрд╕рд╛ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред рдмрд╣реБрдд рд╕рд╛рд░рд╛ рдХрдЪрд░рд╛ рдФрд░ рдЕрдирд╛рд╡рд╢реНрдпрдХ рдЪреАрдЬреЗрдВ, рд▓реЗрдХрд┐рди рдЖрдк рдиреНрдпреВрдирддрдо рд▓рд╛рдЧрдд рдХреЗ рд╕рд╛рде рдмрд┐рд▓реНрдб рдЗрдХрдЯреНрдард╛ рдХрд░рдирд╛ рдЪрд╛рд╣рддреЗ рд╣реИрдВред рдпреЗ рд╕рднреА рдХрд╛рд░рдХ рдЖрдкрдХреЛ рдореВрд▓ рд░реВрдк рд╕реЗ рд▓рд┐рдЦрддреЗ рд╣реИрдВред рдФрд░ рдпрд╣рд╛рдВ рд╕реЗ рдиреБрдХрд╕рд╛рди рд╣реЛрдиреЗ рд╢реБрд░реВ рд╣реЛ рдЬрд╛рддреЗ рд╣реИрдВред
CocoonJS рдХреНрдпреЛрдВ рдирд╣реАрдВ рдЧрдпрд╛:рдореИрдВ рдХреЛрдХреВрдирдЬ рдХреЗ рд╕рд╛рде рдЬреНрдпрд╛рджрд╛ рдХрд╛рдо рдирд╣реАрдВ рдХрд┐рдпрд╛, рдЗрд╕рд▓рд┐рдП рдХреЛрдИ рд╡рд┐рд╢реЗрд╖ рд╕рд╡рд╛рд▓ рдирд╣реАрдВ рдЙрдард╛ред рдХреИрдирд╡рд╛рд╕ рдХреЗ рд╕рд╛рде рдмрдирд╛рддрд╛ рд╣реИ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рддреЗрдЬреА рд╕реЗ рдХрд╛рдо рдХрд░рддреЗ рд╣реИрдВред рд▓реЗрдХрд┐рди рд╕рд╛рдорд╛рдиреНрдп рддреМрд░ рдкрд░ - рдореИрдВрдиреЗ рдХреЛрдХреВрдирдЬ рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░рдиреЗ рдХрд╛ рдмрд┐рдВрджреБ рдирд╣реАрдВ рджреЗрдЦрд╛, рдХреНрдпреЛрдВрдХрд┐ рдЙрд╕реЗ рднреБрдЧрддрд╛рди рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред
рдЕрдиреНрдп рдкреНрд▓реЗрдЯрдлрд╛рд░реНрдореЛрдВ рдФрд░ рдЕрдиреНрдп рдмрд╛рд░реАрдХрд┐рдпреЛрдВ рдХреЗ рд▓рд┐рдП рд╡рд┐рдзрд╛рдирд╕рднрд╛ рдХреЗ рд░реВрдк рдореЗрдВ - рдЗрд╕рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдПрдХ рдЕрд▓рдЧ рд▓реЗрдЦ рд╣реЛрдЧрд╛, рдФрд░ рдЗрд╕ рд╡рд┐рд╖рдп рдпрд╛ рдлреЛрдирдЧреИрдк рд╡рд┐рд╖рдп рдкрд░ рдЖрдЧреЗ рдХреА рдЪрд░реНрдЪрд╛ рдЗрд╕ рдХреЗ рджрд╛рдпрд░реЗ рд╕реЗ рдкрд░реЗ рд╣реИред
рдЪрд▓рд┐рдП рдореБрджреНрджреЗ рдкрд░ рдЖрддреЗ рд╣реИрдВ
рд╢реБрд░реВ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рдЖрдЗрдП рдмреБрдирд┐рдпрд╛рджреА рдмрд╛рддреЛрдВ рдХреЗ рд╕рд╛рде рд╢реБрд░реВ рдХрд░реЗрдВ - WebView рдПрдХ рдкреВрд░реНрдг-рд╕реНрдХреНрд░реАрди HTML рдкреГрд╖реНрда рдЪрд▓ рд░рд╣рд╛ рд╣реИред OnCreate MainActivity рдореЗрдВ рд╣рдо рд▓рд┐рдЦрддреЗ рд╣реИрдВ:
vw = (WebView) findViewById(R.id.webview); vw.setVerticalScrollBarEnabled(false);
рд╕рднреА рд╡рд┐рд╡рд╛рдж рдЬрд╛рд╡рд╛ рдореЗрдВ рд╣рд▓ рдХрд┐рдП рдЬрд╛рдПрдВрдЧреЗред рдпрд╛рдж рд░рдЦреЗрдВ, рдЖрдк рдмрд╛рдбрд╛ рдпрд╛ рд╕реНрдорд╛рд░реНрдЯрдЯреАрд╡реА рдХреЗ рд▓рд┐рдП рд▓рд┐рдЦрддреЗ рд╣реИрдВ - рд╣рдореЗрд╢рд╛ рдХреБрдЫ рдорд╛рдирдХ рдХрд╛рд░реНрдпрдХреНрд╖рдорддрд╛ рд╣реЛрддреА рд╣реИ рдЬреЛ рдЖрдкрдХреЛ рдЬрд╛рд╡рд╛рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдореЗрдВ рдкреБрд▓ рдлреЗрдВрдХрдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрддреА рд╣реИред рдПрдВрдбреНрд░реЙрдЗрдб рдХреЗ рд▓рд┐рдП рд╣рдорд╛рд░реЗ рдорд╛рдорд▓реЗ рдореЗрдВ, рд╣рдордиреЗ WebAppInterface рдХреНрд▓рд╛рд╕ рдХрд╛ рдПрдХ рдЙрджрд╛рд╣рд░рдг рдлреЗрдВрдХ рджрд┐рдпрд╛, рдФрд░ рдХреНрд▓рд╛рд╕ рдЦреБрдж рдЗрд╕ рддрд░рд╣ рджрд┐рдЦрд╛рдИ рджреЗрдЧреА:
public class WebAppInterface { Context mContext; WebAppInterface(Context c) { mContext = c; } @JavascriptInterface public void sendSms(String phoneNumber, String message) { ... - } }
рдиреБрдХрд╕рд╛рди: рдРрд╕реЗ рдкреБрд▓реЛрдВ рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░рдирд╛ рдЖрдорддреМрд░ рдкрд░ рдЕрддреБрд▓реНрдпрдХрд╛рд▓рд┐рдХ рдпрд╛ рдЕрдкреНрд░рддреНрдпрд╛рд╢рд┐рдд рдФрд░ рдЖрд╢реНрдЪрд░реНрдп рд╕реЗ рднрд░рд╛ рд╣реЛ рд╕рдХрддрд╛ рд╣реИред
рдпрджрд┐ рдЖрдкрдХреЛ рдЬрд╛рд╡рд╛ рдХреЛ рдмреНрд▓реВ рд╕реЗ рдмрд╛рд╣рд░ рдХреА рдШрдЯрдирд╛ рдмрддрд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдЬрд╛рд╡рд╛ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ, рддреЛ рдЙрд╕ рддрдХ рдкрд╣реБрдВрдЪрдиреЗ рдХрд╛ рд╕рдмрд╕реЗ рдЖрд╕рд╛рди рддрд░реАрдХрд╛ URL рдкрд░ рджрд╕реНрддрдХ рджреЗрдирд╛ рд╣реИ:
vw.loadUrl("javascript: ... - JavaScript");
рдиреБрдХрд╕рд╛рди
: рдПрдВрдбреНрд░реЙрдЗрдб рдореЗрдВ> рд╕реИрдорд╕рдВрдЧ рд╕реЗ 4, рдбреЛрдо рдЯрдЪ рдЗрд╡реЗрдВрдЯ рдХреЗ рджреМрд░рд╛рди, рддрддреНрд╡реЛрдВ рдХреЛ рдиреАрд▓реЗ рд░рдВрдЧ рдореЗрдВ рд╣рд╛рдЗрд▓рд╛рдЗрдЯ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред

рдЗрд╕ рдмрд╛рд░реАрдХрд┐рдпреЛрдВ рдкрд░ рдзреНрдпрд╛рди рджреЗрдВред рд╡рд┐рд╢рд┐рд╖реНрдЯ "рд╕рдВрд░рдХреНрд╖рдг" рдЖрдкрдХреА рдорджрдж рдирд╣реАрдВ рдХрд░реЗрдЧрд╛:
* { -webkit-tap-highlight-color: rgba(255, 255, 255, 0); -webkit-focus-ring-color: rgba(255, 255, 255, 0); outline: none; -moz-user-select: -moz-none; -o-user-select: none; -khtml-user-select: none; -webkit-user-select: none; user-select: none; -webkit-text-size-adjust: none; }
рдмрдЧ рдХреЗ рдЪрд╛рд░реЛрдВ рдУрд░ рдЬрд╛рдиреЗ рдХреЗ рд▓рд┐рдП, рдЖрдкрдХреЛ рдЬреЛрдбрд╝рдирд╛ рд╣реЛрдЧрд╛:
if (document.addEventListener) { document.addEventListener("touchstart", function () { }, true); }
рд▓реЗрдХрд┐рди рдпрд╣ рд╣рдореЗрд╢рд╛ рд╕рдорд╕реНрдпрд╛ рдХрд╛ рд╕рдорд╛рдзрд╛рди рдирд╣реАрдВ рдХрд░рддрд╛ рд╣реИред рд╢рд╛рдпрдж рд▓реЗрдЖрдЙрдЯ рд╣реА рд╕рдорд╕реНрдпрд╛ рдХреЛ рдкреНрд░рднрд╛рд╡рд┐рдд рдХрд░рддрд╛ рд╣реИред рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рджреЛ рдПрдкреНрд▓рд┐рдХреЗрд╢рди рд▓реЗрдВ: рд╕реБрдбреЛрдХреВ рдФрд░ рдЯреЗрд╕реНрдЯред рд╕реБрдбреЛрдХреВ рдореЗрдВ, рдмреЛрд░реНрдб рдПрдХ рдЯреЗрдмрд▓ рдХреЗ рд╕рд╛рде рд░рдЦрд╛ рдЧрдпрд╛ рд╣реИ, рдФрд░ рддрд╛рд▓рд┐рдХрд╛ рдХреЗ рд▓рд┐рдП рдЗрд╕ рд╕рдорд╛рдзрд╛рди рдиреЗ рдорджрдж рдХреАред рд▓реЗрдХрд┐рди рдЯреЗрд╕реНрдЯ рдореЗрдВ рдпрд╣ рдмрдЯрди рд╣реИред рдРрд╕рд╛ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рд╕рдм рдХреБрдЫ рдПрдЪрдЯреАрдПрдордПрд▓ 5 рд╢рдмреНрджрд╛рд░реНрде рдХреЗ рдорд╛рдирдХреЛрдВ рдХреЗ рдЕрдиреБрд╕рд╛рд░ рд╣реИ, рдФрд░ рд╕рдм рдХреБрдЫ рдареАрдХ рд╕реЗ рдЕрдзрд┐рдХ рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдП, рд▓реЗрдХрд┐рди рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдЖрдкрдХреЛ рд╕реАрдПрд╕рдПрд╕ рдХреЗ рд╕рд╛рде рдХрдВрдХреЛрд╕ рдХреЛ рдЗрд╕ рддрд░рд╣ рд╕реЗ рдЦрддреНрдо рдХрд░рдирд╛ рд╣реЛрдЧрд╛:
.some_button:focus, .some_button:focus:active { background-color: rgba(0, 0, 0, 0); }
рдореИрдВрдиреЗ рдпрд╣ рднреА рджреЗрдЦрд╛ рдХрд┐ рдиреАрд▓реЗ рд░рдВрдЧ рдХрд╛ рдЪрдпрди рджрд┐рдЦрд╛рдИ рдирд╣реАрдВ рджреЗрддрд╛ рд╣реИ рдпрджрд┐ рдмрдЯрди рдкрд╛рда рдкрд░ рд╕реНрдкрд░реНрд╢ рдШрдЯрдирд╛ рдмрд┐рд▓реНрдХреБрд▓ рд╣реБрдИ (рдкрд╛рда рдмрд╣реБрдд рдмрдбрд╝рд╛ рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдП)ред
рдиреБрдХрд╕рд╛рди
: рдПрдВрдбреНрд░реЙрдЗрдб <4 рдкрд░, рдлреЛрдВрдЯ рд░реЗрдВрдЧрдирд╛ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред

рдмрдЧ рд╕реЗ рдирд┐рдкрдЯрдиреЗ рдХрд╛ рддрд░реАрдХрд╛ рдпрд╛ рддреЛ рдЪреЗрдХ рдХрд░рдирд╛ рд╣реИ рдпрд╛ рдлреЛрдВрдЯ рдЕрдХреНрд╖рдо рдХрд░рдирд╛ рд╣реИред рд╣рд╛рд▓рд╛рдВрдХрд┐, рджреВрд╕рд░реА рдУрд░, рд╢рд╛рдпрдж рдореЗрд░реЗ рдкрд╛рд╕ рдлреЛрдВрдЯ рд╕реНрд╡рдпрдВ рдШреБрдорд╛рд╡рджрд╛рд░ рдереЗред
рдиреБрдХрд╕рд╛рди: рдПрдВрдбреНрд░реЙрдЗрдб рдХреЗрд╕ рд╕рдВрд╡реЗрджрдирд╢реАрд▓ рд╣реИред
рдпрджрд┐ рдЖрдкрдиреЗ .jpg рд╕рдВрд╕рд╛рдзрдиреЛрдВ рдХреЗ рдвреЗрд░ рдХреЗ рдмреАрдЪ .JPG рд╕реЗ рдПрдХ рддрд╕реНрд╡реАрд░ рдЦреЛ рджреА рд╣реИ, рддреЛ рдЖрдкрдХреЛ рдХрднреА рднреА рдмреНрд░рд╛рдЙрдЬрд╝рд░ рдореЗрдВ рдЕрдВрддрд░ рдкрд░ рдзреНрдпрд╛рди рдирд╣реАрдВ рджрд┐рдпрд╛ рдЬрд╛рдПрдЧрд╛, рд▓реЗрдХрд┐рди рдЪрд┐рддреНрд░ WebView рдореЗрдВ рд▓реЛрдб рдирд╣реАрдВ рд╣реЛрдЧрд╛ред
рдиреБрдХрд╕рд╛рди: рдПрдВрдбреНрд░реЙрдЗрдб рдЖрд░рдХреНрд╖рд┐рдд рд╢рдмреНрджреЛрдВ рдХреЗ рдкреНрд░рддрд┐ рд╕рдВрд╡реЗрджрдирд╢реАрд▓ рд╣реИред
рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдореЗрд░реЗ рдкрд╛рд╕ рд╕рдВрдкрддреНрддрд┐ рдореЗрдВ рдХреНрд▓рд╛рд╕рд┐рдЬрд┐рдЬрд╝рдо рдирд╛рдордХ рдПрдХ рдлрд╝реЛрд▓реНрдбрд░ рдерд╛ред рдПрдВрдбреНрд░реЙрдЗрдб рдиреЗ рдкреНрд░реЛрдЬреЗрдХреНрдЯ рдмрдирд╛рдиреЗ рд╕реЗ рдЗрдирдХрд╛рд░ рдХрд░ рджрд┐рдпрд╛ рдФрд░ рд╕реНрдкрд╖реНрдЯ рд░реВрдк рд╕реЗ рддреНрд░реБрдЯрд┐ рдХреА рд╡реНрдпрд╛рдЦреНрдпрд╛ рдирд╣реАрдВ рдХрд░ рд╕рдХрд╛ред рдирд╛рдо рджрд┐рдпрд╛ рдЧрдпрд╛ рдХреНрд▓реЗрд╕рд┐рдЬрд╝рд┐рдЬрд╝рдо - рдЕрд░реНрдЬрд┐рддред рдлрд┐рд░ рд╕реЗ, рдЙрд╕реА рдПрдВрдбреНрд░реЙрдЗрдб рдХреЗ рдПрдХ рдирд┐рдпрдорд┐рдд рдмреНрд░рд╛рдЙрдЬрд╝рд░ рдореЗрдВ, рдРрд╕реА рд╕рдорд╕реНрдпрд╛рдПрдВ рдирд╣реАрдВ рдереАрдВред
рдиреБрдХрд╕рд╛рди: рдПрдВрдбреНрд░реЙрдЗрдб рдкрд░ рдСрдбрд┐рдпреЛ рдЯреИрдЧ рдХрд╛рдо рдирд╣реАрдВ рдХрд░рддрд╛ рд╣реИред
рдЕрдзрд┐рдХ рд╕рдЯреАрдХ рд░реВрдк рд╕реЗ, рдпрд╣ рдмреНрд░рд╛рдЙрдЬрд╝рд░ рдореЗрдВ рдХрд╛рдо рдХрд░рддрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рдЬрдм рдЖрдк рдЗрд╕реЗ WebView рдХреЗ рдЕрдВрджрд░ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╣реИрдВ рддреЛ рдпрд╣ рдХрд╛рдо рдирд╣реАрдВ рдХрд░рддрд╛ рд╣реИред рдЗрд╕ рд╕реАрдорд╛ рдХреЗ рдЖрд╕рдкрд╛рд╕ рдкрд╛рдиреЗ рдХреЗ рд▓рд┐рдП, рдЖрдк рдПрдХ рдкреБрд▓ рдХреЛ рдлреЗрдВрдХ рд╕рдХрддреЗ рд╣реИрдВ рдФрд░ рдЗрд╕реЗ рдореВрд▓ рдХреЛрдб рдореЗрдВ рдлрд┐рд░ рд╕реЗ рд▓рд┐рдЦ рд╕рдХрддреЗ рд╣реИрдВред рдСрдирдХреНрд░рд┐рдПрдЯ рдРрдб рдореЗрдВ:
mp = new MediaPlayer();
рдФрд░ WebView рдХреЗ рд▓рд┐рдП, рд╣рдо JavaScript рдЗрдВрдЯрд░рдлрд╝реЗрд╕ рдХрд╛ рд╡рд┐рд╕реНрддрд╛рд░ рдХрд░ рд░рд╣реЗ рд╣реИрдВ:
@JavascriptInterface public void audio(String url) { try { soundClick = getAssets().openFd(url); mp.reset(); mp.setDataSource(soundClick.getFileDescriptor(), soundClick.getStartOffset(), soundClick.getLength()); mp.prepare(); mp.start(); } catch (IOException e) { e.printStackTrace(); } }
рдиреБрдХрд╕рд╛рди: Android рдХреЛ рдмрдВрдж рдХрд░рдиреЗ рдХреЗ рдмрдЬрд╛рдп, рдЕрдиреБрдкреНрд░рдпреЛрдЧреЛрдВ рдХреЛ рдХрдо рдХрд░рддрд╛ рд╣реИред рдЗрд╕рд▓рд┐рдП, рдпрджрд┐ рдЖрдк рдСрдбрд┐рдпреЛ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╣реИрдВ - рддреЛ рдЖрдкрдХреЛ рдХрдо рд╕реЗ рдХрдо рдзреНрд╡рдирд┐ рдмрдВрдж рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИред
рд╕рдорд╕реНрдпрд╛ рдХрд╛ рд╕рд╛рд░ рдпрд╣ рд╣реИ рдХрд┐, рдорд╛рди рд▓реАрдЬрд┐рдП рдХрд┐ рдЖрдкрдХреЗ рдкрд╛рд╕ рдЦреЗрд▓ рдЪрд▓ рд░рд╣рд╛ рд╣реИред рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдиреЗ рдПрдкреНрд▓рд┐рдХреЗрд╢рди рд╕реЗ рдмрд╛рд╣рд░ рдирд┐рдХрд▓ рдЧрдпрд╛, рд▓реЗрдХрд┐рди рд░рдирд┐рдВрдЧ рдЧреЗрдо рд╕реЗ рдЖрд╡рд╛рдЬрд╝ рд╕реБрдирдирд╛ рдЬрд╛рд░реА рд░рдЦрддрд╛ рд╣реИред рдЗрд╕рд▓рд┐рдП, рдЬрд╛рд╡рд╛ рд╕реЗ рдЖрдкрдХреЛ рдЬрд╛рд╡рд╛рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдХреЛ рд╣рд┐рдЯ рдХрд░рдирд╛ рд╣реЛрдЧрд╛ рдФрд░ рдЦреЗрд▓ рдХреЛ рд░реЛрдХрдиреЗ рдХреЗ рд▓рд┐рдП рдХрд╣рдирд╛ рд╣реЛрдЧрд╛ред
@Override public void onBackPressed() { vw.loadUrl("javascript: windowClose();"); MainActivity.this.finish(); } @Override public void onPause() { super.onPause(); vw.loadUrl("javascript: windowClose();"); MainActivity.this.finish(); } @Override public void onResume() { super.onResume(); vw.loadUrl("javascript: windowOpen();"); } @Override public void onDestroy() { super.onDestroy(); vw.loadUrl("javascript: windowClose();"); MainActivity.this.finish(); }
MainActivity.this.finish (); рдореИрдВ рд╣рд░ рдореМрдХреЗ рдкрд░ рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдХреЛ рдмрдВрдж рдХрд░рдиреЗ рдХреА рдХреЛрд╢рд┐рд╢ рдХрд░рддрд╛ рд╣реВрдВред рддреЛ рдЖрдк рдЕрдзрд┐рдХ рдЖрд╢реНрд╡рд╕реНрдд рд╣реЛ рд╕рдХрддреЗ рд╣реИрдВ рдХрд┐ рдЕрдЧрд▓реА рдмрд╛рд░ рдПрдВрдбреНрд░реЙрдЗрдб рдмрд╕ рд╢реБрд░реБрдЖрдд рд╕реЗ рд╢реБрд░реВ рд╣реЛрдЧрд╛, рдФрд░ рдХреБрдЫ рднреА рдкреБрдирд░реНрд╕реНрдерд╛рдкрд┐рдд рдХрд░рдиреЗ рдХрд╛ рдкреНрд░рдпрд╛рд╕ рдирд╣реАрдВ рдХрд░реЗрдЧрд╛ред рдпрд╣ рд╕реНрдкрд╖реНрдЯ рд╣реИ рдХрд┐ рд╕реБрдбреЛрдХреВ рдЬреИрд╕реЗ рдЦреЗрд▓реЛрдВ рдореЗрдВ рдЖрдк рдРрд╕рд╛ рдирд╣реАрдВ рдХрд░ рд╕рдХрддреЗ, рд▓реЗрдХрд┐рди рдЕрдзрд┐рдХрд╛рдВрд╢ рдЦреЗрд▓реЛрдВ рдореЗрдВ рдЖрдк рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ, рдХреНрдпреЛрдВрдХрд┐ рд╡реЗ рдХрд╛рдлреА рд╕рд░рд▓ рд╣реИрдВ (рдПрдХ рд╣реА FlappyBirds рдпрд╛ рдЯреЗрд╕реНрдЯ)ред рдореИрдВ рдЖрдкрдХреЛ рд╕рд▓рд╛рд╣ рджреЗрддрд╛ рд╣реВрдВ рдХрд┐ рдПрдВрдбреНрд░реЙрдЗрдб рдХреЗ рдкреНрд░рдпрд╛рд╕реЛрдВ рд╕реЗ рдбрд░рдиреЗ рдХреЗ рд▓рд┐рдП рд╕рдм рдХреБрдЫ рд╡рд╛рдкрд╕ рдХрд░ рджреЗрдВ рдХреНрдпреЛрдВрдХрд┐ рдпрд╣ рдерд╛, рдХреНрдпреЛрдВрдХрд┐ рдЕрдиреНрдп рдХреАрдбрд╝реЗ рджрд┐рдЦрд╛рдИ рджреЗрддреЗ рд╣реИрдВред
рдиреБрдХрд╕рд╛рди
: onResume рдХреЗ рд╕рд╛рде Android рд╣рдореЗрд╢рд╛ рдЕрдиреБрдкреНрд░рдпреЛрдЧреЛрдВ рдХреЛ рд╕рдлрд▓рддрд╛рдкреВрд░реНрд╡рдХ рдкреБрдирд░реНрд╕реНрдерд╛рдкрд┐рдд рдирд╣реАрдВ рдХрд░рддрд╛ рд╣реИред рдФрд░ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ, рдХреБрдЫ рдЙрдкрдХрд░рдгреЛрдВ рдкрд░ рдкреБрдирд░рд╛рд░рдВрдн рдХрд░рдиреЗ рдХреЗ рд╕рд╛рде рд╕рдорд╕реНрдпрд╛рдПрдВ рд╣реИрдВред

рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдпрд╣ рдЯрд╛рдЗрдорд░ рдмрдВрдж рдХрд░ рд╕рдХрддрд╛ рд╣реИ рдпрд╛ рдЪрдорддреНрдХрд╛рд░рд┐рдХ рдврдВрдЧ рд╕реЗ рдЖрдХрд╛рд░ рдмрджрд▓рдиреЗ рдХрд╛ рдЬрд╡рд╛рдм рдирд╣реАрдВ рджреЗ рд╕рдХрддрд╛ рд╣реИред рдЗрд╕рд▓рд┐рдП, рдХрд┐рд╕реА рднреА рдЕрд╕рдВрдЧрдд рд╕реНрдерд┐рддрд┐ рдореЗрдВ, рдХреЙрд▓ рдЖрдХрд╛рд░ рдмрджрд▓реЗрдВ рдФрд░ рдЯрд╛рдЗрдорд░ рдХреЛ рджреЛрдмрд╛рд░рд╛ рдЬрд╛рдВрдЪреЗрдВред
рдиреБрдХрд╕рд╛рди
: рдЬрдм рдПрдХ рдЖрд╡реЗрджрди рдХреЛ рдЫреЛрдЯрд╛ / рдЦреЛрд▓рдирд╛, рдХрдИ WebViews рджрд┐рдЦрд╛рдИ рджреЗ рд╕рдХрддреЗ рд╣реИрдВ рдЬреЛ рд╕рдорд╛рдирд╛рдВрддрд░ рдореЗрдВ рдХрд╛рдо рдХрд░реЗрдВрдЧреЗ рдФрд░ рдПрдХ рджреВрд╕рд░реЗ рдХреЗ рд╕рд╛рде рд╣рд╕реНрддрдХреНрд╖реЗрдк рдХрд░реЗрдВрдЧреЗред
рдРрд╕реА рд╕рдорд╕реНрдпрд╛ рд╕реЗ рдирд┐рд╢реНрдЪрд┐рдд рд░реВрдк рд╕реЗ рджреВрд░ рд╣реЛрдиреЗ рдХреЗ рд▓рд┐рдП, рд╣рдо рдШреЛрд╖рдгрд╛ рдореЗрдВ рдЬреЛрдбрд╝рддреЗ рд╣реИрдВ:
<activity ... // WebView . android:configChanges="keyboardHidden|orientation|screenSize" ... // android:clearTaskOnLaunch="true" android:noHistory="true" android:launchMode="singleTask" >
рд╣рдорд╛рд░реЗ рдЬрд╛рд╡рд╛рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдХреЛ рдФрд░ рднреА рдмреЗрд╣рддрд░ рдмрдирд╛рдиреЗ рдХреЗ рд▓рд┐рдП, рдЖрдк рд╢реАрд░реНрд╖ рдкрд░ рдХрд╛рд▓реА рдкрдЯреНрдЯреА рдХреЛ рд╣рдЯрд╛рдХрд░ рдЗрд╕реЗ рдкреВрд░реНрдг рд╕реНрдХреНрд░реАрди рдореЗрдВ рдЪрд▓рд╛ рд╕рдХрддреЗ рд╣реИрдВред рдРрд╕рд╛ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рдкреНрд░рдХрдЯ рдореЗрдВ рдЬреЛрдбрд╝реЗрдВ:
<application ... android:theme="@android:style/Theme.NoTitleBar.Fullscreen">
рдиреБрдХрд╕рд╛рди
: рд▓реЛрдХрд▓рд╕реНрдЯреЛрд░реЗрдЬ рдЬрд┐рд╕рдореЗрдВ рдЖрдк рдбреЗрдЯрд╛ рдХреЛ рд╕реЗрд╡ рдХрд░рддреЗ рд╣реИрдВ, рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдХреЛ рдмрдВрдж рдХрд░рдиреЗ рдХреЗ рдмрд╛рдж рдирд╖реНрдЯ рд╣реЛ рдЬрд╛рдПрдЧрд╛ред
рджреЛ рдХреЙрд▓ рдХреЗ рдмреАрдЪ рдбреЗрдЯрд╛ рдХреЛ рдмрдЪрд╛рдиреЗ рдХреЗ рд▓рд┐рдП, рдЖрдкрдХреЛ рдбреЗрдЯрд╛ рдХреЛ рджреЗрд╢реА рд╢реЗрдпрд░реНрдбрдкреНрд░рд┐рдлрд░реЗрдВрд╕ рдореЗрдВ рд╕рд╣реЗрдЬрдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИред рдЖрдЗрдП рд╕рд╣реЗрдЬрдиреЗ рдФрд░ рд▓реЛрдб рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рджреЛ рдкреБрд▓реЛрдВ рдХреЛ рд░реЛрд▓ рдХрд░реЗрдВ:
@JavascriptInterface public void saveSomeThing(String message, String id) { if(numberDataForSave > Integer.parseInt(id)) return; numberDataForSave = Integer.parseInt(id); SharedPreferences preferences = getSharedPreferences("com.example.something", MODE_PRIVATE); SharedPreferences.Editor editor = preferences.edit(); editor.putString("somethingID", message); editor.commit(); } @JavascriptInterface public String loadSomeThing() { SharedPreferences preferences = getSharedPreferences("com.example.something", MODE_PRIVATE); String message = preferences.getString("somethingID", ""); return message; }
рдиреБрдХрд╕рд╛рди: рд╡рд┐рдзрд┐рдпрд╛рдВ рдЕрддреБрд▓реНрдпрдХрд╛рд▓рд┐рдХ рд░реВрдк рд╕реЗ рдХрд╛рдо рдХрд░рддреА рд╣реИрдВ (рдпрд╛ рдХреНрдпрд╛ рдпрд╣ рдореБрдЭреЗ рдкреНрд░рддреАрдд рд╣реЛрддрд╛ рд╣реИ?)ред рдпрджрд┐ рдЖрдк рд╕реЗрд╡ рдХреЛ рдЕрдХреНрд╕рд░ рдХреЙрд▓ рдХрд░рддреЗ рд╣реИрдВ, рддреЛ рдбреЗрдЯрд╛ рдЧрд▓рдд рдХреНрд░рдо рдореЗрдВ рдЖ рд╕рдХрддрд╛ рд╣реИред
рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ, рдмрдЧ рдЗрд╕ рддрд░рд╣ рджрд┐рдЦреЗрдЧрд╛ - рдЕрдВрддрд┐рдо рдкрдВрдХреНрддрд┐ рдХреЛ рд╕рд╣реЗрдЬрд╛ рдирд╣реАрдВ рдЧрдпрд╛ рдерд╛, рд▓реЗрдХрд┐рди рдкрд┐рдЫрд▓реЗ рдПрдХред рд╕рдорд╕реНрдпрд╛ рдХреЛ рд╣рд▓ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рд╣рдо рдбреЗрдЯрд╛ рдХреЛ рдЬрд╛рд╡рд╛рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдФрд░ рдореВрд▓ рдХреЛрдб рдореЗрдВ рд░рдЦрддреЗ рд╣реИрдВред рд╕рд╣реЗрдЬрдиреЗ рдХреЗ рд▓рд┐рдП рд╡рд┐рдзрд┐ рдореЗрдВ рдПрдХ рдЪрд░ рд╕рдВрдЦреНрдпрд╛рдбреЗрдЯрд╛рдлрд╝реЛрд░рд╕реЗрд╡ рд╣реИ, рдЬреЛ рд╕рдВрдЧреНрд░рд╣реАрдд рдбреЗрдЯрд╛ рдХреЗ рд╕реВрдЪрдХрд╛рдВрдХ рдХреА рдЬрд╛рдВрдЪ рдХрд░рддрд╛ рд╣реИред рдпрджрд┐ рд╕реВрдЪрдХрд╛рдВрдХ рдкрд┐рдЫрд▓реЗ рд╕рд╣реЗрдЬреЗ рдЧрдП рд╕реЗ рдХрдо рд╣реИ, рддреЛ рдбреЗрдЯрд╛ рдХреЛ рдЕрдирджреЗрдЦрд╛ рдХрд░ рджрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред
рдиреБрдХрд╕рд╛рди
: рдореБрдЦреНрдп рдЧрддрд┐рд╡рд┐рдзрд┐ рдХрд╛ рд▓реЗрдЖрдЙрдЯ рдЖрдорддреМрд░ рдкрд░ рдмрд╣реБрдд рдЕрдзрд┐рдХ рд╣реЛрддрд╛ рд╣реИред
рдкреВрд░реНрдг рд╕реНрдХреНрд░реАрди рдореЗрдВ рдПрдХ WebView рдХреЗ рд▓рд┐рдП, рд╣рдореЗрдВ рдЗрд╕рдХреА рдЗрддрдиреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдирд╣реАрдВ рд╣реИред рдЫреЛрдбрд╝ рдХрд░ рдЫреЛрдЯрд╛ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ:
<?xml version="1.0" encoding="utf-8"?> <WebView xmlns:android="http://schemas.android.com/apk/res/android" android:id="@+id/webview" android:layout_width="fill_parent" android:layout_height="fill_parent" android:scrollbars="none" />
рдиреБрдХрд╕рд╛рди: рдПрдХ рд╕рд┐рдо рдХрд╛рд░реНрдб рдХреЗ рдмрд┐рдирд╛ рднреЗрдЬрд╛ рдЧрдпрд╛ рдПрд╕рдПрдордПрд╕ред рдПрд╕рдПрдордПрд╕ рджреВрд░ рдирд╣реАрдВ рд╣реБрдЖ, рдФрд░ рдХреЙрд▓рдмреИрдХ рд╕рдЪ рд╣реЛ рдЧрдпрд╛ред
рдпрджрд┐ рдЖрдк PhoneGap рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╣реИрдВ, рддреЛ рд╢рд╛рдпрдж рдПрдВрдбреНрд░реЙрдЗрдб рдХреЗ рд▓рд┐рдП рдПрд╕рдПрдордПрд╕ рднреЗрдЬрдиреЗ рд╡рд╛рд▓рд╛ рдореЙрдбреНрдпреВрд▓ рдХреБрдЯрд┐рд▓ рд▓рд┐рдЦрд╛ рдЬрд╛рддрд╛ рд╣реИ (рдХрд┐рд╕реА рднреА рдорд╛рдорд▓реЗ рдореЗрдВ, рдореБрдЭреЗ рд╡реНрдпрдХреНрддрд┐рдЧрдд рд░реВрдк рд╕реЗ рдРрд╕реА рд╕рдорд╕реНрдпрд╛ рдХрд╛ рд╕рд╛рдордирд╛ рдХрд░рдирд╛ рдкрдбрд╝рд╛)ред рдпрд╣ рдХрд┐рд╕реА рднреА рдкрд░рд┐рдгрд╛рдо рдкрд░ рд╕рд╣реА рд╣реИред рдЗрд╕реЗ рд╕рд╛рдорд╛рдиреНрдп рд░реВрдк рд╕реЗ рд▓рд╛рдЧреВ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рдЬрд╛рд╡рд╛ рд╕реЗ рдЬрд╛рд╡рд╛рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдкрд░ рдПрд╕рдПрдордПрд╕ рднреЗрдЬрдиреЗ рдХреЗ рд▓рд┐рдП рдкреБрд▓ рдкрд░ рдХреВрджрддреЗ рд╣реИрдВ:
@JavascriptInterface public void sendSms(String phoneNumber, String message) { SmsManager sms = SmsManager.getDefault(); sms.sendTextMessage(phoneNumber, null, message, sendSmsPendingIntent, null); }
рдФрд░ MainActivity рдХреНрд▓рд╛рд╕ рдореЗрдВ рд╡рд┐рдзрд┐ рдЬреЛрдбрд╝реЗрдВ:
private PendingIntent registerSentSmsReceiver() { String SENT = "SMS_SENT"; PendingIntent sentPI = PendingIntent.getBroadcast(MainActivity.this, 0, new Intent(SENT), 0); sendSmsReceiver = new BroadcastReceiver() { public void onReceive(Context arg0, Intent arg1) { switch (getResultCode()) { case Activity.RESULT_OK: vw.loadUrl("javascript: smsSend(true);"); break; default: vw.loadUrl("javascript: smsSend(false);"); break; } } }; registerReceiver(sendSmsReceiver, new IntentFilter(SENT)); return sentPI; }
рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдХреЛ рдирдП рд╡рд░реНрдЧ рдХреЗ рд╕рд╛рде рджреБрд░реНрдШрдЯрдирд╛рдЧреНрд░рд╕реНрдд рд╣реЛрдиреЗ рд╕реЗ рдмрдЪрд╛рдиреЗ рдХреЗ рд▓рд┐рдП, рдЖрдкрдХреЛ onDestroy рдХреЛ рдЕрдкрдбреЗрдЯ рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ:
@Override public void onDestroy() { super.onDestroy(); if (sendSmsReceiver != null) { unregisterReceiver(sendSmsReceiver); } }
рдпрд╛рдж рд░рдЦреЗрдВ, sendSmsReceiver рдХреЛ рд╣рдореЗрд╢рд╛ рдкрд░реЗрд╢рд╛рди рд╣реЛрдиреЗ рдкрд░ рдЕрдирд┐рдпрдВрддреНрд░рд┐рдд рд╣реЛрдирд╛ рдкрдбрд╝рддрд╛ рд╣реИред
рдиреБрдХрд╕рд╛рди
: рд╕реИрдорд╕рдВрдЧ рд╕реЗ рдПрдВрдбреНрд░реЙрдЗрдб рдкрд░, рд╡реЗрдмрд╡реНрдпреВ рд╕реНрдкрд░реНрд╢ рдХреА рдШрдЯрдирд╛рдУрдВ рдХреЛ рдзреАрдорд╛ рдХрд░ рджреЗрддрд╛ рд╣реИред рдЗрд╕рдХреЗ рдЕрд▓рд╛рд╡рд╛, рд╡рд╣ рдЕрдкрдиреА рдЙрдВрдЧрд▓реА рдкрдХрдбрд╝рддреЗ рд╣реБрдП рдбреНрд░рд╛рдЗрдВрдЧ рдХреЛ рд░реЛрдХ рднреА рд╕рдХрддрд╛ рд╣реИред
рдЖрдк рдЗрд╕ рдмрдЧ рд╕реЗ рджреВрд░ рдирд╣реАрдВ рдЬрд╛ рд╕рдХрддреЗред рдЗрд╕рд▓рд┐рдП рдЙрдиреНрд╣реЛрдВрдиреЗ рдРрд╕рд╛ рдХрд┐рдпрд╛ред рдпрд╣ рдХреЛрдХреВрдирдЬ рдкрджреЛрдиреНрдирддрд┐ рдХреЗ рдХрд╛рд░рдгреЛрдВ рдореЗрдВ рд╕реЗ рдПрдХ рдмрди рдЧрдпрд╛ рд╣реИред рдпрджрд┐ рдЖрдк рдЪрд╛рд╣реЗрдВ, рддреЛ рдЖрдк рдХреИрдирд╡рд╛рд╕ рддрддреНрд╡ рдХреЛ рдореВрд▓ (рд╕рднреА рдкреБрд▓реЛрдВ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ) рдХреЛ рдлрд┐рд░ рд╕реЗ рд▓рд┐рдЦ рд╕рдХрддреЗ рд╣реИрдВ, рд▓реЗрдХрд┐рди рдпрд╣ рдХрдЪрд░рд╛ рд╣реИред рдПрдХ рдмрд╛рд░ рдореЗрдВ рдЬрд╛рд╡рд╛ рдореЗрдВ рд╕рдм рдХреБрдЫ рд▓рд┐рдЦрдиреЗ рдХреЗ рд▓рд┐рдП рдмреЗрд╣рддрд░ рд╣реИред рд▓реЗрдХрд┐рди, рдлрд┐рд░ рднреА, рдПрдкреАрдХреЗ рдлрд╝рд╛рдЗрд▓ рдХреЛ рдЗрдХрдЯреНрдард╛ рдХрд░рдирд╛ рдЕрднреА рднреА рд╕рдордЭ рдореЗрдВ рдЖрддрд╛ рд╣реИ, рдХреНрдпреЛрдВрдХрд┐ рд╕реИрдорд╕рдВрдЧ рдХреЗ рдЕрд▓рд╛рд╡рд╛, рдЕрднреА рднреА рдЕрдиреНрдп рдирд┐рд░реНрдорд╛рддрд╛рдУрдВ рд╕реЗ рдлреЛрди рдХрд╛ рдПрдХ рдЧреБрдЪреНрдЫрд╛ рд╣реИ, рдФрд░ рд╡рд╣рд╛рдВ рд╕рдм рдХреБрдЫ рдЗрддрдирд╛ рдмреБрд░рд╛ рдирд╣реАрдВ рд╣реЛ рд╕рдХрддрд╛ рд╣реИред рдЦреИрд░, рдЗрд╕ рд╕рдВрдмрдВрдз рдореЗрдВ рдПрдХ рд╣реА рдЯрд┐рдЬрд╝реЗрди рдореЗрдВ, рд╕рд╛рдорд╛рдиреНрдп рддреМрд░ рдкрд░, рдПрдХ рдкрд░реА рдХрдерд╛ред
рдореИрдВ рдЬрд╛рд╡рд╛ рдореЗрдВ рджрд╛рдВрддреЗрджрд╛рд░ рдХреНрд╖рдгреЛрдВ рдХреЗ рд▓рд┐рдП рдкрд╣рд▓реЗ рд╕реЗ рдорд╛рдлреА рдорд╛рдВрдЧрддрд╛ рд╣реВрдВ, рдХреНрдпреЛрдВрдХрд┐ рдЕрднреА рднреА рдореЗрд░реА рдЬрд╛рд╡рд╛рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдкреНрд░реЛрдлрд╝рд╛рдЗрд▓ред рдареАрдХ рд╣реИ, рдбреЗрдореЛ
рд░реВрд╕реА рдФрд░
рдЕрдВрдЧреНрд░реЗрдЬреА рд▓реЗрдЦ рд╕реЗ рд╣реИ, рдЕрдЧрд░ рдХрд┐рд╕реА рдХреЛ рджрд┐рд▓рдЪрд╕реНрдкреА рд╣реЛрдЧреАред