HTML / рдЬрд╛рд╡рд╛рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдореЗрдВ WinRT рдЕрдиреБрдкреНрд░рдпреЛрдЧреЛрдВ рдХреЗ рд╡рд┐рдХрд╛рд╕ рдХрд╛ рдкрд░рд┐рдЪрдпред рдбреЗрдЯрд╛ рд╣реИрдВрдбрд▓рд┐рдВрдЧ рдореЗрдВ рд╕реБрдзрд╛рд░

рдпрд╣ рдЖрд▓реЗрдЦ рд╡рд┐рдВрдбреЛрдЬ 8. рдХреЗ тАЛтАЛрд▓рд┐рдП HTML / JS рдореЗрдВ рд╡рд┐рдХрд╛рд╕рд╢реАрд▓ WinRT рдЕрдиреБрдкреНрд░рдпреЛрдЧреЛрдВ рдХреА рдореВрд▓ рдмрд╛рддреЗрдВ рдХреЗ рд▓рд┐рдП рд╕рдорд░реНрдкрд┐рдд рд╕рд╛рдордЧреНрд░рд┐рдпреЛрдВ рдХреА рд╢реНрд░реГрдВрдЦрд▓рд╛ ( рдкрд╣рд▓рд╛ рднрд╛рдЧ , рджреВрд╕рд░рд╛ рднрд╛рдЧ ) рдЬрд╛рд░реА рд░рдЦрддрд╛ рд╣реИред рдЗрд╕ рднрд╛рдЧ рдореЗрдВ рд╣рдо рдбреЗрдЯрд╛ рдбрд┐рд╕реНрдкреНрд▓реЗ рдкреНрд░рд╛рдкреНрдд рдХрд░рдиреЗ рдФрд░ рдЧреБрдгрд╡рддреНрддрд╛ рдХреА рд╡рд┐рд╢реНрд╡рд╕рдиреАрдпрддрд╛ рдореЗрдВ рд╕реБрдзрд╛рд░ рдХрд░рдиреЗ рдХреА рдХреЛрд╢рд┐рд╢ рдХрд░реЗрдВрдЧреЗ, рд╕рд╛рде рд╣реА рдЕрдиреБрдмрдВрдзреЛрдВ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдереЛрдбрд╝реА рдмрд╛рдд рдХрд░реЗрдВрдЧреЗред



рдореБрдЭреЗ рдпрд╛рдж рджрд┐рд▓рд╛рдПрдВ рдХрд┐ рдкрд┐рдЫрд▓реЗ рд╣рд┐рд╕реНрд╕реЗ рдореЗрдВ рд╣рдо рдЗрд╕ рддрдереНрдп рдкрд░ рдмрд╕реЗ рдереЗ рдХрд┐ рд╣рдордиреЗ рд╕реАрдЦрд╛ рдХрд┐ рдмрд╛рд╣рд░реА рдЖрд░рдПрд╕рдПрд╕ рдлрд╝реАрдб рд╕реЗ рдбреЗрдЯрд╛ рдХреИрд╕реЗ рдкреНрд░рд╛рдкреНрдд рдХрд┐рдпрд╛ рдЬрд╛рдП рдФрд░ рддрдбрд╝рдХ-рднрдбрд╝рдХ рдореЛрдб рд╕рд╣рд┐рдд рд╡рд┐рднрд┐рдиреНрди рдПрдкреНрд▓рд┐рдХреЗрд╢рди рд╕реНрдЯреЗрдЯреНрд╕ рдХреЗ рд▓рд┐рдП рдбреЗрдЯрд╛ рдбрд┐рд╕реНрдкреНрд▓реЗ рд╢реИрд▓рд┐рдпреЛрдВ рдХреЛ рдмрджрд▓ рджрд┐рдпрд╛ рдЬрд╛рдПред

рдЖрдЙрдЯрдкреБрдЯ рдкреНрд░рддрд┐рдмрдВрдз


рдпрджрд┐ рдЖрдк рдлрд┐рд░ рд╕реЗ рдпрд╣ рдкрддрд╛ рд▓рдЧрд╛рдиреЗ рдХреА рдХреЛрд╢рд┐рд╢ рдХрд░рддреЗ рд╣реИрдВ рдХрд┐ рдбреЗрдЯрд╛ рдХреИрд╕реЗ рдкреНрд░рд╛рдкреНрдд рдФрд░ рдкреНрд░рджрд░реНрд╢рд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рддреЛ рдЖрдк рдЖрд╕рд╛рдиреА рд╕реЗ рдзреНрдпрд╛рди рджреЗрдВрдЧреЗ рдХрд┐ рд╣рдо рдЙрдиреНрд╣реЗрдВ рдХрд┐рд╕реА рднреА рддрд░рд╣ рд╕реЗ рд╕реАрдорд┐рдд рдирд╣реАрдВ рдХрд░рддреЗ рд╣реИрдВред рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдЗрдирдкреБрдЯ рдкрд░ RSS рд╕реЗ рдбреЗрдЯрд╛ рдлреАрдб рдкреНрд░рд╛рдкреНрдд рдХрд░рддрд╛ рд╣реИ, рдЙрдиреНрд╣реЗрдВ рдбреЗрдЯрд╛ рдХреЛ рдмрд╛рдБрдзрдиреЗ рдХреЗ рд▓рд┐рдП рдЙрдкрдпреЛрдЧ рдХреА рдЬрд╛рдиреЗ рд╡рд╛рд▓реА рдЖрдВрддрд░рд┐рдХ рд╕рдВрд░рдЪрдирд╛ рдореЗрдВ рдкрд░рд┐рд╡рд░реНрддрд┐рдд рдХрд░рддрд╛ рд╣реИ, рдФрд░ рдлрд┐рд░ рдЙрдиреНрд╣реЗрдВ рд╕реНрдХреНрд░реАрди рдкрд░ рдПрдХ рд╕рдВрдЧреНрд░рд╣ рдореЗрдВ рдкреНрд░реЛрдЬреЗрдХреНрдЯ рдХрд░рддрд╛ рд╣реИред рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ, рд╣рдо рддреБрд░рдВрдд рдкрд╣рд▓реА рд╕реНрдХреНрд░реАрди рд╕реЗ рд╕рднреА-рд╕рднреА рдбреЗрдЯрд╛ рд╕рд╣реА рджреЗрдЦрддреЗ рд╣реИрдВред

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


рдЕрдВрддрддрдГ, рд╣рдорд╛рд░реЗ рдорд╛рдорд▓реЗ рдореЗрдВ, рдирд╡реАрдирддрдо рдШрдЯрдирд╛рдУрдВ рдХреА рдкреВрд░реА рддрд░рд╣ рд╕реЗ рдЬрд▓реНрджреА рдФрд░ рдкреВрд░реА рддрд░рд╣ рд╕реЗ рджрд┐рдЦрд╛рдиреЗ рдХреЗ рдмрдЬрд╛рдп, рдЬрд┐рд╕рдХреЗ рд▓рд┐рдП рдпрд╣ рдкрд┐рдЫрд▓реЗ 6-8 рд░рд┐рдХреЙрд░реНрдб рдкреНрд░рджрд░реНрд╢рд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдкрд░реНрдпрд╛рдкреНрдд рд╣реЛрдЧрд╛, рд╣рдо рддреБрд░рдВрдд рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдХреЗ рд▓рд┐рдП рд╕рдорд╛рдЪрд╛рд░ рдХреЗ рдкреВрд░реЗ рдкреНрд░рд╡рд╛рд╣ рдХреЛ рдиреАрдЪреЗ рд▓рд╛рддреЗ рд╣реИрдВред рдмрдбрд╝рд╛ рдбреЗрдЯрд╛ рд╕реЗрдЯ рднреА рдЖрдкрдХреЛ рдкрдбрд╝реЛрд╕реА рд╕рдореВрд╣реЛрдВ рдореЗрдВ рдЬрд▓реНрджреА рд╕реЗ рдЬрд╛рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рдирд╣реАрдВ рджреЗрддрд╛ рд╣реИ - рдЖрдкрдХреЛ рдмрд╣реБрдд рд▓рдВрдмрд╛ рд╕реНрдХреНрд░реЙрд▓ рдХрд░рдирд╛ рд╣реЛрдЧрд╛ (рдмрд╣реБрдд рдЖрдЧреЗ рджреЗрдЦрддреЗ рд╣реБрдП, рдореЗрд░рд╛ рдХрд╣рдирд╛ рд╣реИ рдХрд┐ рд╕рд┐рдореЗрдВрдЯрд┐рдХ рдЬреВрдо рдЗрд╕ рд╕рдорд╕реНрдпрд╛ рдХреЛ рдЖрд╕рд╛рдиреА рд╕реЗ рд╣рд▓ рдХрд░ рджреЗрддрд╛ рд╣реИ)ред

рдЗрд╕ рдкреНрд░рдХрд╛рд░, рд╣рдорд╛рд░реА рдкрд╣рд▓реА рдкреНрд░рд╛рдердорд┐рдХрддрд╛ рдкрд╣рд▓реА рд╕реНрдХреНрд░реАрди рдкрд░ рдбреЗрдЯрд╛ рдкреНрд░рд╡рд╛рд╣ рдХреЛ рд╕реАрдорд┐рдд рдХрд░рдирд╛ рд╣реИред

рдРрд╕рд╛ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рдкреЗрдЬ \ groupedItems \ groupedItems.js рдлрд╝рд╛рдЗрд▓ рдЦреЛрд▓реЗрдВ ред

рдЪрд░ рдХреНрд╖реЗрддреНрд░ рдореЗрдВ рдлрд╝рдВрдХреНрд╢рди рдХреА рд╢реБрд░реБрдЖрдд рдореЗрдВ, рджреЛ рдФрд░ рдмрдирд╛рдПрдВ:

var groupedItems; var tilesLimit = 6; 


рдкрд╣рд▓реЗ рдореЗрдВ рд╣рдо рдлрд╝рд┐рд▓реНрдЯрд░ рдХрд┐рдП рдЧрдП рд╕рдВрдЧреНрд░рд╣ рдХреЛ рд╕рдВрдЧреНрд░рд╣реАрдд рдХрд░реЗрдВрдЧреЗред рджреВрд╕рд░рд╛ рдЗрдВрдЧрд┐рдд рдХрд░рддрд╛ рд╣реИ рдХрд┐ рдХрд┐рддрдиреЗ рдЯрд╛рдЗрд▓ рдкреНрд░рджрд░реНрд╢рд┐рдд рдХрд┐рдП рдЬрд╛ рд╕рдХрддреЗ рд╣реИрдВ (рдЖрджрд░реНрд╢ рд░реВрдк рд╕реЗ, рдЗрд╕ рддрд░рд╣ рдХреЗ рдорд╛рдкрджрдВрдбреЛрдВ рдХреЛ рдЕрд▓рдЧ-рдЕрд▓рдЧ рд╕реЗрдЯрд┐рдВрдЧреНрд╕ рдлрд╝рд╛рдЗрд▓реЛрдВ рдпрд╛ рдкрд░рд┐рдпреЛрдЬрдирд╛ рдорд╛рдкрджрдВрдбреЛрдВ рдХрд╛ рд╡рд░реНрдгрди рдХрд░рдиреЗ рд╡рд╛рд▓реА рд╕рдорд╛рди рдбреЗрдЯрд╛ рд╕рдВрд░рдЪрдирд╛рдУрдВ рдореЗрдВ рд╕реНрдерд╛рдирд╛рдВрддрд░рд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдП)ред

рдЕрдЧрд▓рд╛, рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рдкрдВрдХреНрддрд┐ рдЦреЛрдЬреЗрдВ:

 _initializeLayout: function (listView, viewState) { 


рдЗрд╕ рдлрд╝рдВрдХреНрд╢рди рдХреЛ рдЙрд╕ рд╕рдордп рдХрд╣рд╛ рдЬрд╛рддрд╛ рд╣реИ рдЬрдм рдкреЗрдЬ рдХреЛ рдЗрдирд┐рд╢рд┐рдпрд▓рд╛рдЗрдЬрд╝ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ рдФрд░ рдпрд╣ рдирд┐рд░реНрдзрд╛рд░рд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ рдХрд┐ рдЙрдкрдпреЛрдЧ рдХрд┐рдП рдЧрдП рдбрд┐рд╕реНрдкреНрд▓реЗ рдореЛрдб рдХреЗ рдЖрдзрд╛рд░ рдкрд░ рд╕реНрдХреНрд░реАрди рдкрд░ рдХреМрди рд╕рд╛ рдбреЗрдЯрд╛ рдкреНрд░рджрд░реНрд╢рд┐рдд рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдПред Data.js рдлрд╝рд╛рдЗрд▓ рдореЗрдВ рд╡рд░реНрдгрд┐рдд рд╡реИрд╢реНрд╡рд┐рдХ рдбреЗрдЯрд╛ рдСрдмреНрдЬреЗрдХреНрдЯ рдХрд╛ рдЙрдкрдпреЛрдЧ рдбреЗрдЯрд╛ рд╕реНрд░реЛрдд рдХреЗ рд░реВрдк рдореЗрдВ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред

рдлрд╝рдВрдХреНрд╢рди рдХреА рд╢реБрд░реБрдЖрдд рдореЗрдВ рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рдкрдВрдХреНрддрд┐рдпрд╛рдБ рдЬреЛрдбрд╝реЗрдВ:

  groupedItems = Data.items.createFiltered(function (item) { return item.index < tilesLimit; }).createGrouped( function groupKeySelector(item) { return item.group.key; }, function groupDataSelector(item) { return item.group; } ); 


рдЖрдкрдХреЛ рдпрд╛рдж рджрд┐рд▓рд╛ рджреВрдВ рдХрд┐ рдбреЗрдЯрд╛ рдСрдмреНрдЬреЗрдХреНрдЯ рдХреА рдЖрдЗрдЯрдо рдкреНрд░реЙрдкрд░реНрдЯреА рдореЗрдВ рдбреЗрдЯрд╛ рдХрд╛ рдПрдХ рд╕рдВрдЧреНрд░рд╣ ( WinJS.Binding.List ) рд╣реЛрддрд╛ рд╣реИ, рдЬрд┐рд╕реЗ рдПрдХ рдпрд╛ рджреВрд╕рд░реЗ RSS рдлрд╝реАрдб рдореЗрдВ рд╕рджрд╕реНрдпрддрд╛ рджреНрд╡рд╛рд░рд╛ рд╕рдореВрд╣реАрдХреГрдд рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред

рдбреЗрдЯрд╛ рдХреЛ рдлрд╝рд┐рд▓реНрдЯрд░ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рд╣рдо рдЗрд╕ рд╕рдВрдЧреНрд░рд╣ рдХреЛ рд▓реЗрддреЗ рд╣реИрдВ рдФрд░ рдХреЗрд╡рд▓ рдЙрдиреНрд╣реАрдВ рддрддреНрд╡реЛрдВ рдХреЛ рдЫреЛрдбрд╝рддреЗ рд╣реИрдВ рдЬрд┐рдирдХреЗ рд╕реВрдЪрдХрд╛рдВрдХ рд╣рдорд╛рд░реЗ рдкреНрд░рддрд┐рдмрдВрдз рд╕реЗ рдХрдо рд╣реИрдВ, рдФрд░ рдлрд┐рд░ рд╕рдореВрд╣реЛрдВ рдХреЗ рдЕрдиреБрд╕рд╛рд░ рд╕рдВрдЧреНрд░рд╣ рдХреЛ рдлрд┐рд░ рд╕реЗ рд╕рдореВрд╣рд┐рдд рдХрд░рддреЗ рд╣реИрдВред

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


рдЗрд╕рдХреЗ рдЕрд▓рд╛рд╡рд╛, рдПрдХ рд╣реА рдлрд╝рдВрдХреНрд╢рди рдореЗрдВ, рдбреЗрдЯрд╛ рдФрд░ рдбреЗрдЯрд╛ рдХреЗ рд▓рд┐рдВрдХ рдХреЛ рдмрджрд▓реЗрдВред

  if (viewState === appViewState.snapped) { listView.itemDataSource = groupedItems.groups.dataSource; listView.groupDataSource = null; listView.layout = new ui.ListLayout(); } else { listView.itemDataSource = groupedItems.dataSource; listView.groupDataSource = groupedItems.groups.dataSource; listView.layout = new ui.GridLayout({ groupHeaderPosition: "top" }); } 


рдиреЛрдЯ : рдЗрд╕ рдкреГрд╖реНрда рдкрд░ рдбреЗрдЯрд╛ рдХреА рдЕрдиреНрдп рдШрдЯрдирд╛рдУрдВ рд╕реЗ рд╕рд╛рд╡рдзрд╛рди рд░рд╣реЗрдВред рдЗрд╕ рдорд╛рдорд▓реЗ рдореЗрдВ, рд╣рдо рдЙрдиреНрд╣реЗрдВ рдирд╣реАрдВ рдмрджрд▓рддреЗ рд╣реИрдВ, рдХреНрдпреЛрдВрдХрд┐ рд╡реЗ рдЖрдВрддрд░рд┐рдХ рдкреГрд╖реНрдареЛрдВ рдкрд░ рдЬрд╛рддреЗ рд╕рдордп рдЙрдкрдпреЛрдЧ рдХрд┐рдП рдЬрд╛рддреЗ рд╣реИрдВ, рдФрд░ рдКрдкрд░ рд╣рдордиреЗ рдбреЗрдЯрд╛ рджреНрд╡рд╛рд░рд╛ рдХреЗрд╡рд▓ рдПрдХ рдлрд╝рд┐рд▓реНрдЯрд░ рдмрдирд╛рдпрд╛ рд╣реИред рд▓реЗрдХрд┐рди рд╕рд╛рдорд╛рдиреНрдп рд╕реНрдерд┐рддрд┐ рдореЗрдВ, рдпрджрд┐ рдЖрдк рдбреЗрдЯрд╛ рд╕реНрд░реЛрдд рдмрджрд▓рддреЗ рд╣реИрдВ, рддреЛ рдЗрд╕реЗ рд╣рд░ рдЬрдЧрд╣ рдмрджрд▓рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛ рд╕рдХрддреА рд╣реИ, рдпрд╛, рдЕрдзрд┐рдХ рд╕рд╣реА рдврдВрдЧ рд╕реЗ, рдбреЗрдЯрд╛ рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░рдиреЗ рдХреА рдПрдХ рдЕрд▓рдЧ рдкрд░рдд рдХреЛ рдмрд╛рд╣рд░ рдирд┐рдХрд╛рд▓рдирд╛ рдЪрд╛рд╣рд┐рдПред


рдкреНрд░реЛрдЬреЗрдХреНрдЯ рдЪрд▓рд╛рдПрдБ:



рдмрд╣реБрдд рдмрдврд╝рд┐рдпрд╛! рдЕрдм рд╣рдо рддреБрд░рдВрдд рд╕рднреА рдирдП рд╕рд┐рд░реЗ рд╕реЗ рджреЗрдЦрддреЗ рд╣реИрдВред

рдЕрдкрдирд╛ рдЗрдВрдЯрд░рдиреЗрдЯ рдХрдиреЗрдХреНрд╢рди рдЬрд╛рдВрдЪреЗрдВ


рдЕрдЧрд▓рд╛ рдорд╣рддреНрд╡рдкреВрд░реНрдг рдмрд┐рдВрджреБ: рд╕реБрдирд┐рд╢реНрдЪрд┐рдд рдХрд░реЗрдВ рдХрд┐ рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдЗрдВрдЯрд░рдиреЗрдЯ рдХрдиреЗрдХреНрд╢рди рдХреА рдЕрдиреБрдкрд╕реНрдерд┐рддрд┐ рдореЗрдВ рд╕рд╣реА рдврдВрдЧ рд╕реЗ рд╡реНрдпрд╡рд╣рд╛рд░ рдХрд░рддрд╛ рд╣реИред рдпрджрд┐ рдЖрдк рдиреЗрдЯрд╡рд░реНрдХ рдХреЗ рд╕рд╛рде рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдХреЗ рд╡рд░реНрддрдорд╛рди рд╕рдВрд╕реНрдХрд░рдг рдХреЛ рдЪрд╛рд▓реВ рдХрд░рдиреЗ рдХрд╛ рдкреНрд░рдпрд╛рд╕ рдХрд░рддреЗ рд╣реИрдВ, рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдПрдпрд░рдкреНрд▓реЗрди рдореЛрдб рдХреЛ рдЪрд╛рд▓реВ рдХрд░рдХреЗ, рдпрд╣ рдЖрд╡рд╢реНрдпрдХ рд╕реНрдЯреНрд░реАрдо рдбрд╛рдЙрдирд▓реЛрдб рдХрд░рдиреЗ рдореЗрдВ рдЕрд╕рдорд░реНрдерддрд╛ рдХреЗ рдХрд╛рд░рдг рддреНрд░реБрдЯрд┐ рдХрд╛ рдХрд╛рд░рдг рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдПред (рд╢рд╛рдпрдж рд╡реЗ рдХреИрд╢ рдХрд░рдиреЗ рдореЗрдВ рдХрд╛рдордпрд╛рдм рд░рд╣реЗ, рдЗрд╕рд▓рд┐рдП рдкреНрд░рдпреЛрдЧ рдХреА рд╡рд┐рд╢реНрд╡рд╕рдиреАрдпрддрд╛ рдХреЗ рд▓рд┐рдП, рдЖрдк рдХреБрдЫ рдЕрдиреНрдп рд╕реНрдЯреНрд░реАрдо рдХрдиреЗрдХреНрдЯ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред)

рдЗрд╕рдХреЗ рдЕрд▓рд╛рд╡рд╛, рдпрджрд┐ рдзрд╛рд░рд╛ рдЕрдиреБрдкрд▓рдмреНрдз рд╣реИ, рддреЛ рднреА рдПрдХ рд╕рдорд╕реНрдпрд╛ рд╣реЛрдЧреАред

рдЗрдВрдЯрд░рдиреЗрдЯ рдХреА рдЙрдкрд▓рдмреНрдзрддрд╛ рдХреА рдЬрд╛рдВрдЪ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, js \ data.js рдлрд╝рд╛рдЗрд▓ рдЦреЛрд▓реЗрдВ рдФрд░ рдЗрд╕рдореЗрдВ рдирд┐рдореНрди рдлрд╝рдВрдХреНрд╢рди рдЬреЛрдбрд╝реЗрдВ :

  function isInternetConnection() { var connectionProfile = Windows.Networking.Connectivity.NetworkInformation.getInternetConnectionProfile(); return (connectionProfile != null); } 


рдпрд╣рд╛рдВ рд╣рдо рдиреЗрдЯрд╡рд░реНрдХ рдХреА рд╡рд░реНрддрдорд╛рди рд╕реНрдерд┐рддрд┐ рдХрд╛ рдкрддрд╛ рд▓рдЧрд╛рдиреЗ рдХреЗ рд▓рд┐рдП WinRT рдХреА рдУрд░ рдореБрдбрд╝рддреЗ рд╣реИрдВред рдпрд╣ рдкрд╣рд▓реЗ рд╕реЗ рд╣реА рдЕрдЪреНрдЫреА рдЬрд╛рдирдХрд╛рд░реА рд╣реИ, рд╣рд╛рд▓рд╛рдВрдХрд┐ рдпрд╣ 100% рдЧрд╛рд░рдВрдЯреА рдирд╣реАрдВ рджреЗрддрд╛ рд╣реИ рдХрд┐ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдЗрдВрдЯрд░рдиреЗрдЯ рдФрд░ рдЖрд╡рд╢реНрдпрдХ рд╕реНрдЯреНрд░реАрдо рддрдХ рдкрд╣реБрдВрдЪ рд╣реИред

рдЕрдм рдПрдХ рдлрдВрдХреНрд╢рди рдЬреЛрдбрд╝рддреЗ рд╣реИрдВ, рдЬрд┐рд╕рдореЗрдВ рд╕рдорд╕реНрдпрд╛ рд╣реЛрдиреЗ рдкрд░ рдПрд░рд░ рдореИрд╕реЗрдЬ рджрд┐рдЦрд╛рдИ рджреЗрдЧрд╛:

  function showConnectionError(msg, donotexit) { msg = (msg != undefined) ? msg : ""; var messageDialog = new Windows.UI.Popups.MessageDialog(msg, "Can not connect"); messageDialog.commands.append(new Windows.UI.Popups.UICommand("Ok", null, 1)); messageDialog.showAsync().done(function (command) { if (!donotexit && command.id == 1) { MSApp.terminateApp({ number: 0, stack: "", description: "No internet connection" }); } }); } 

рдпрд╣ рдлрд╝рдВрдХреНрд╢рди, WinRT API рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╣реБрдП, рдирд┐рд░реНрджрд┐рд╖реНрдЯ рддреНрд░реБрдЯрд┐ рд╕рдВрджреЗрд╢ рдкреНрд░рджрд░реНрд╢рд┐рдд рдХрд░рддрд╛ рд╣реИ рдФрд░, рдбрд┐рдлрд╝реЙрд▓реНрдЯ рд░реВрдк рд╕реЗ, рдпрджрд┐ рдбреЛрдиреЛрдЯреЗрдХреНрд╕рд┐рдЯ рдзреНрд╡рдЬ рд╕реЗрдЯ рдирд╣реАрдВ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ (рдпрд╛ рдпрд╣ рдЧрд▓рдд рд╣реИ), рддреЛ рдЕрдиреБрдкреНрд░рдпреЛрдЧ рд╕рдорд╛рдкреНрдд рд╣реЛ рдЬрд╛рддрд╛ рд╣реИред

рдиреЛрдЯ : рдПрдХ рд╡рд╛рд╕реНрддрд╡рд┐рдХ рдЕрдиреБрдкреНрд░рдпреЛрдЧ рдореЗрдВ, рд╡реНрдпрд╡рд╣рд╛рд░ рддрд░реНрдХ рднрд┐рдиреНрди рд╣реЛ рд╕рдХрддрд╛ рд╣реИред рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдХреЛрдИ рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдЬрд╛рдирдмреВрдЭрдХрд░ рдбреЗрдЯрд╛ рдХреИрд╢ рдХрд░ рд╕рдХрддрд╛ рд╣реИ рдпрд╛ рдХрдиреЗрдХреНрд╢рди рдХреА рдЕрд╕реНрдерд╛рдпреА рд╣рд╛рдирд┐ рд╣реЛрдиреЗ рдкрд░ рдлрд┐рд░ рд╕реЗ рд╕рд░реНрд╡рд░ рд╕реЗ рд╕реНрдЯреНрд░реАрдо рдбрд╛рдЙрдирд▓реЛрдб рдХрд░рдиреЗ рдХрд╛ рдкреНрд░рдпрд╛рд╕ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдХреА рдкреЗрд╢рдХрд╢ рдХрд░ рд╕рдХрддрд╛ рд╣реИред


рдЕрдЧрд▓рд╛ рдЪрд░рдг: рдХрдиреЗрдХреНрд╢рди рдХреЗ рд▓рд┐рдП рдЬрд╛рдВрдЪ рд╢реБрд░реВ рдХрд░реЗрдВ; рдРрд╕рд╛ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рд▓рд╛рдЗрди рдХреЛ рдмрджрд▓реЗрдВ

  list = getBlogPosts(list); 


рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рдХреЗ рд▓рд┐рдП:

  function tryUpdateData() { if (isInternetConnection()) { list = getBlogPosts(list); } else { showConnectionError("Please check your internet connection. "); } }; tryUpdateData(); 


рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ, рд╣рдордиреЗ рдЗрдВрдЯрд░рдиреЗрдЯ рдХрдиреЗрдХреНрд╢рди рдХреА рдЬрд╛рдВрдЪ рдХреЗ рд▓рд┐рдП рдбреЗрдЯрд╛ рдЕрдкреАрд▓ рдХреЛ рд▓рдкреЗрдЯрд╛ рд╣реИред рдпрджрд┐ рдпрд╣ рдирд╣реАрдВ рд╣реИ, рддреЛ рдЕрдиреБрдкреНрд░рдпреЛрдЧ рдПрдХ рддреНрд░реБрдЯрд┐ рд╕рдВрджреЗрд╢ рдкреНрд░рджрд░реНрд╢рд┐рдд рдХрд░рддрд╛ рд╣реИ рдФрд░ рдмрдВрдж рд╣реЛ рдЬрд╛рддрд╛ рд╣реИ:



рдЕрдм рд╣рдо getBlogPosts рдлрд╝рдВрдХреНрд╢рди рдкрд░ рд╡рд╛рдкрд╕ рдЖрддреЗ рд╣реИрдВред рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдПрдХ рддреНрд░реБрдЯрд┐ рд╣реЛрдиреЗ рдХреА рд╕рдВрднрд╛рд╡рдирд╛ рднреА рд╣реИ, рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдпрджрд┐ рдХреБрдЫ рдЖрд░рдПрд╕рдПрд╕ рдлрд╝реАрдб рдиреЗ рдХрд╛рдо рдХрд░рдирд╛ рдмрдВрдж рдХрд░ рджрд┐рдпрд╛ рд╣реИ, рддреЛ рдЗрд╕ рдорд╛рдорд▓реЗ рдореЗрдВ рдПрдХреНрд╕рдПрдЪрдЖрд░ рдкрд░ рд╣рдорд╛рд░рд╛ рдЖрд╡рд░рдг рдПрдХ рдЕрдкрд╡рд╛рдж рдЙрдард╛рдПрдЧрд╛ рдЬрд┐рд╕реЗ рдкрдХрдбрд╝рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИред

RSS рд▓рд┐рдВрдХ рдореЗрдВ рд╕реЗ рдХрд┐рд╕реА рдПрдХ рдХреЛ рдЧрд▓рдд рдХреЗ рд╕рд╛рде рдмрджрд▓рдиреЗ рдХрд╛ рдкреНрд░рдпрд╛рд╕ рдХрд░реЗрдВ рдФрд░ рдПрдкреНрд▓рд┐рдХреЗрд╢рди рд▓реЙрдиреНрдЪ рдХрд░реЗрдВ (рдпрд╣рд╛рдВ рд╣рдо рдорд╛рдирддреЗ рд╣реИрдВ рдХрд┐ рд╕рд░реНрд╡рд░ рдХреА рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛ рдЗрд╕реА рдЧрд▓рдд рд▓рд┐рдВрдХ рд╣реЛрдЧреА)ред

рдПрдХ рдЕрдкрд╡рд╛рдж рдХреЛ рд╕рдВрднрд╛рд▓рдиреЗ рдХреЗ рд▓рд┐рдП, рдкреНрд░реЙрдорд┐рд╕ рд╡рд┐рд╡рд░рдг рдореЗрдВ рдЖрдкрдХреЛ рдПрдХ рдлрд╝рдВрдХреНрд╢рди рдЬреЛрдбрд╝рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрддреА рд╣реИ рдЬрд┐рд╕реЗ рддреНрд░реБрдЯрд┐ рд╣реЛрдиреЗ рдкрд░ рдХрд╣рд╛ рдЬрд╛рддрд╛ рд╣реИред рдЖрдВрддрд░рд┐рдХ рдЕрдирд╛рдо рдлрд╝рдВрдХреНрд╢рди (рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛) {...} рдХреЗ рддреБрд░рдВрдд рдмрд╛рдж, рдПрдХ рдЕрд▓реНрдкрд╡рд┐рд░рд╛рдо рд╕реЗ рдЕрд▓рдЧ рдХреА рдЧрдИ рд╕реВрдЪреА рдЬреЛрдбрд╝реЗрдВ :

  function (error) { showConnectionError("Can't get rss updates for " + feed.title + ". Used source: " + feed.url, true); } 


рдЗрд╕ рдорд╛рдорд▓реЗ рдореЗрдВ, рд╣рдо рдПрдХ рддреНрд░реБрдЯрд┐ рд╕рдВрджреЗрд╢ рдкреНрд░рджрд░реНрд╢рд┐рдд рдХрд░рддреЗ рд╣реИрдВ, рд▓реЗрдХрд┐рди рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдХреЛ рдмрдВрдж рдирд╣реАрдВ рдХрд░рддреЗ рд╣реИрдВ: рд╢рд╛рдпрдж рдЕрдиреНрдп рдереНрд░реЗрдбреНрд╕ рд╕рд╛рдорд╛рдиреНрдп рд░реВрдк рд╕реЗ рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдХрд░реЗрдВрдЧреЗред

рд▓рд┐рдВрдХ рдХреЛ рдЧрд▓рдд рдмрдирд╛рдиреЗ рдФрд░ рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдЪрд▓рд╛рдиреЗ рдХрд╛ рдкреНрд░рдпрд╛рд╕ рдХрд░реЗрдВ:



рд╣реБрд░реНрд░реЗ! рдЕрдм рд╣рдо рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдХреЛ рджреБрд░реНрднрд╛рд╡рдирд╛рдкреВрд░реНрдг рд╕рдВрджреЗрд╢реЛрдВ рдХреЗ рд╕рд╛рде рдЦреБрд╢ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред рдпрд╣рд╛рдВ рдореИрдВ рдПрдХ рдмрд╛рд░ рдлрд┐рд░ рдПрдХ рдорд╣рддреНрд╡рдкреВрд░реНрдг рд╡рд┐рдЪрд╛рд░ рджреЛрд╣рд░рд╛рдирд╛ рдЪрд╛рд╣рддрд╛ рд╣реВрдВ: рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдХреЛ рд╕реВрдЪрд┐рдд рдХрд░рдирд╛ рд╕рд┐рд░реНрдл рдПрдХ рдЖрдзрд╛ рдЙрдкрд╛рдп рд╣реИред рдЖрджрд░реНрд╢ рд░реВрдк рд╕реЗ, рдЖрдкрдХреЛ рдбреЗрдЯрд╛ рдХреЛ рдХреИрд╢ рдХрд░рдиреЗ рдФрд░ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдХреЛ рд╕реВрдЪрд┐рдд рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ рдХрд┐ рдХрдо рд╡рд┐рдирд╛рд╢рдХрд╛рд░реА рддрд░реАрдХреЗ рд╕реЗ рдХрдиреЗрдХреНрд╢рди рд╕рдорд╕реНрдпрд╛рдПрдВ рд╣реИрдВред рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП рджреЗрдЦреЗрдВ рдХрд┐ рд╡рд┐рдВрдбреЛрдЬ 8 рдореЗрдВ рдмрд┐рдВрдЧ рдиреНрдпреВрдЬрд╝ рдРрдк рдХреИрд╕реЗ рдХрд╛рдо рдХрд░рддрд╛ рд╣реИред

рдЬрд╛рдирдХрд╛рд░реА рд╕рд╛рдЭрд╛ рдХрд░рдирд╛


рдЕрдВрдд рдореЗрдВ, рдЗрд╕ рд▓реЗрдЦ рдореЗрдВ, рд╣рдо рд╕реАрдЦреЗрдВрдЧреЗ рдХрд┐ рд╕рд╛рдЭрд╛ рдХрд┐рдП рдЧрдП рдФрд░ рдкреНрд░рд┐рдВрдЯ рдЕрдиреБрдмрдВрдзреЛрдВ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдПрдХ рдЖрд╡реЗрджрди рд╕реЗ рдЬрд╛рдирдХрд╛рд░реА рдХреИрд╕реЗ рд╕рд╛рдЭрд╛ рдХрд░реЗрдВред

рдкреГрд╖реНрда \ itemDetail \ itemDetail.js рдлрд╝рд╛рдЗрд▓ рдЦреЛрд▓реЗрдВред рдЗрд╡реЗрдВрдЯ рд╣реИрдВрдбрд▓рд░ рдХреЛ рд╕реНрдЯреЛрд░ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рд╢реБрд░реБрдЖрдд рдореЗрдВ рдПрдХ рд╡реИрд░рд┐рдПрдмрд▓ рдЬреЛрдбрд╝реЗрдВ:

  var sharingHandler; 


рд╢реБрд░реБрдЖрдд рдореЗрдВ рдпрд╛ рдЕрдВрдд рдХреЗ рдкрд╛рд╕ (WinJS.UI.Pages.define () рдХреЗ рдмрд╛рд╣рд░) рдирд┐рдореНрди рдХрд╛рд░реНрдп рднреА рдЬреЛрдбрд╝реЗрдВ :

1. setupSharing - рдбреЗрдЯрд╛ рдЯреНрд░рд╛рдВрд╕рдлрд░ рдХреЗ рд▓рд┐рдП рдкрдВрдЬреАрдХрд░рдг
  function setupSharing(item) { var dataTransferManager = Windows.ApplicationModel.DataTransfer.DataTransferManager.getForCurrentView(); sharingHandler = onSharingDataRequested.bind(item); dataTransferManager.addEventListener("datarequested", sharingHandler); } 


рдпрд╣рд╛рдВ рд╣рдо WinRT рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рдбреЗрдЯрд╛ рдЯреНрд░рд╛рдВрд╕рдлрд░ рдореИрдиреЗрдЬрд░ рддрдХ рдкрд╣реБрдВрдЪрддреЗ рд╣реИрдВ рдФрд░ рдбреЗрдЯрд╛ рдЕрдиреБрд░реЛрдз рдЗрд╡реЗрдВрдЯ рд╣реИрдВрдбрд▓рд░ рдХреЛ рд▓рдЯрдХрд╛рддреЗ рд╣реИрдВред

2. onSharingDataRequested - рдЕрдиреБрд░реЛрдз рдХреЛ рд╕рдВрд╕рд╛рдзрд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдШрдЯрдирд╛

  function onSharingDataRequested(e) { var request = e.request; var item = this; var text = item.title; if (item.link) { text += "\n\r" + item.link; request.data.setUri(new Windows.Foundation.Uri(item.link)); } request.data.properties.title = text; request.data.properties.description = "Some awesome news on Windows!"; request.data.setText(text); } 


рдпрд╣рд╛рдВ рд╣рдо рдпрд╣ рд╡рд░реНрдгрди рдХрд░рддреЗ рд╣реИрдВ рдХрд┐ рд╣рдо рдкреНрд░рд╛рдкреНрддрдХрд░реНрддрд╛ рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдХреЛ рдХреМрди рд╕рд╛ рдбреЗрдЯрд╛ рдкрд╛рд╕ рдХрд░рддреЗ рд╣реИрдВ: рд▓рд┐рдВрдХ, рдЯреЗрдХреНрд╕реНрдЯ рдЖрджрд┐ред (рдбреЗрдЯрд╛ рдЯреНрд░рд╛рдВрд╕рдлрд░ рдХрд╛ рд╡рд┐рд╡рд░рдг рдпрд╣рд╛рдВ рджреЗрдЦрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ: рд╕рд╛рдордЧреНрд░реА рд╕рд╛рдЭрд╛ рдХрд░рдирд╛ рдФрд░ рдкреНрд░рд╛рдкреНрдд рдХрд░рдирд╛ )ред

рдмрд╣реБрдд рдЕрдВрдд рдореЗрдВ рддреИрдпрд╛рд░ рдлрд╝рдВрдХреНрд╢рди рдХреЗ рдЕрдВрджрд░, рдЕрдиреБрдмрдВрдз рдХрд╛ рд╕рдорд░реНрдерди рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдкрдВрдЬреАрдХрд░рдг рдХреЙрд▓ рдЬреЛрдбрд╝реЗрдВ:

  setupSharing(item); 


рдПрдкреНрд▓рд┐рдХреЗрд╢рди рд▓реЙрдиреНрдЪ рдХрд░реЗрдВ, рдкреЛрд╕реНрдЯ рдкрд░ рдЬрд╛рдПрдВ рдФрд░ рдЖрдХрд░реНрд╖рдг рдХреЗ рдкреИрдирд▓ рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рд╕рдорд╛рдЪрд╛рд░ рдХреЛ рдХрд┐рд╕реА рдЕрдиреНрдп рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдореЗрдВ рд╕реНрдерд╛рдирд╛рдВрддрд░рд┐рдд рдХрд░рдиреЗ рдХрд╛ рдкреНрд░рдпрд╛рд╕ рдХрд░реЗрдВ:



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

рдРрд╕рд╛ рд╣реЛрдиреЗ рд╕реЗ рд░реЛрдХрдиреЗ рдХреЗ рд▓рд┐рдП, рдЖрдкрдХреЛ рдбреЗрдЯрд╛ рд╣рд╕реНрддрд╛рдВрддрд░рдг рдкреНрд░рдмрдВрдзрдХ рдореЗрдВ рдИрд╡реЗрдВрдЯ рд╣реИрдВрдбрд▓рд░ рд░реАрд╕реЗрдЯ рдХрд░рдирд╛ рд╣реЛрдЧрд╛ред рдпрд╣ рдкреНрд░рддреНрдпреЗрдХ рдкреГрд╖реНрда рдХреЗ рдкреНрд░рд╡реЗрд╢ рджреНрд╡рд╛рд░ рдкрд░ рдпрд╛ рдирд┐рдХрд╛рд╕ рдкрд░ рдЗрд╕рдХреЗ рд╡рд┐рдкрд░реАрдд рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рдлрд╝рдВрдХреНрд╢рди рдЬреЛрдбрд╝реЗрдВ:

  function clearContracts() { var dataTransferManager = Windows.ApplicationModel.DataTransfer.DataTransferManager.getForCurrentView(); dataTransferManager.removeEventListener("datarequested", sharingHandler); } 


рдпрд╣рд╛рдВ рд╣рдо рдХреЗрд╡рд▓ рд╕рдВрдмрдВрдзрд┐рдд рдИрд╡реЗрдВрдЯ рд╣реИрдВрдбрд▓рд░ рдХреЛ рд╣рдЯрд╛рддреЗ рд╣реИрдВред рдХреЙрдорд╛ рджреНрд╡рд╛рд░рд╛ рдЕрд▓рдЧ рдХрд┐рдП рдЧрдП рддреИрдпрд╛рд░ рд╕рдВрдкрддреНрддрд┐ рдХрд╛ рд╡рд░реНрдгрди рдХрд░рдиреЗ рдХреЗ рдмрд╛рдж рдПрдХ рдлрд╝рдВрдХреНрд╢рди рдХреЛ рдХреЙрд▓ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рдЕрдирд▓реЛрдб рдХреЗ рд▓рд┐рдП рдПрдХ рдлрд╝рдВрдХреНрд╢рди рдЬреЛрдбрд╝реЗрдВ:

  unload: function () { clearContracts(); } 


рд╣реЛ рдЧрдпрд╛, рдЕрдм рдбреЗрдЯрд╛ рдЯреНрд░рд╛рдВрд╕рдлрд╝рд░ рд╡рд╣реА рдХрд╛рдо рдХрд░рддрд╛ рд╣реИ рдЬрд╣рд╛рдБ рдЙрд╕реЗ рдХрд╛рдо рдХрд░рдирд╛ рдЪрд╛рд╣рд┐рдПред

рд╣рдо рд▓реЗрдЦ рдЫрд╛рдкрддреЗ рд╣реИрдВ



рдЕрдм рдкреНрд░рд┐рдВрдЯ рд╕рдкреЛрд░реНрдЯ рдЬреЛрдбрд╝рддреЗ рд╣реИрдВред рд╕рдмрд╕реЗ рдкрд╣рд▓реЗ, рдпрд╣ рдзреНрдпрд╛рди рджрд┐рдпрд╛ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдП рдХрд┐ рдбрд┐рдлрд╝реЙрд▓реНрдЯ рд░реВрдк рд╕реЗ рдЖрдкрдХреЗ рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдХреЛ рдкрддрд╛ рдирд╣реАрдВ рд╣реИ рдХрд┐ рдХреИрд╕реЗ рдкреНрд░рд┐рдВрдЯ рдХрд░рдирд╛ рд╣реИред рдореБрджреНрд░рдг рдХреЗ рд▓рд┐рдП рджрд╕реНрддрд╛рд╡реЗрдЬреЛрдВ рдХреЛ рд╕реНрдерд╛рдирд╛рдВрддрд░рд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рд╕рд┐рд╕реНрдЯрдо рдкреНрд░рд┐рдВрдЯ рдЕрдиреБрдмрдВрдз ( рдкреНрд░рд┐рдВрдЯ ) рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рдЬреЛ "рдбрд┐рд╡рд╛рдЗрд╕" рдЪрдорддреНрдХрд╛рд░ рдмрдЯрди рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛рдУрдВ рдХреЗ рд▓рд┐рдП рдЙрдкрд▓рдмреНрдз рд╣реИ:




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

  var printTaskHandler; 


рдПрдХ рдкреНрд░рд┐рдВрдЯ рдЕрдиреБрдмрдВрдз рдкрд░ рд╣рд╕реНрддрд╛рдХреНрд╖рд░ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдХрд╛рд░реНрдп:

  function setupPrinting(item) { var printManager = Windows.Graphics.Printing.PrintManager.getForCurrentView(); printTaskHandler = onPrintTaskRequested.bind(item) printManager.addEventListener("printtaskrequested", printTaskHandler); } 


рдФрд░ рдШрдЯрдирд╛ рд╕рдВрдЪрд╛рд▓рдХреЛрдВ:
  function onPrintTaskRequested(printEvent) { var printTask = printEvent.request.createPrintTask(this.group.title, function (args) { args.setSource(MSApp.getHtmlPrintDocumentSource(document)); }); } 


рдпрд╣рд╛рдВ рдЖрдк рдкреНрд░рд┐рдВрдЯ рд╡рд┐рдХрд▓реНрдкреЛрдВ рдХреЛ рднреА рдХреЙрдиреНрдлрд╝рд┐рдЧрд░ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ рдФрд░ рдЕрддрд┐рд░рд┐рдХреНрдд рдШрдЯрдирд╛рдУрдВ рдХреА рд╕рджрд╕реНрдпрддрд╛ рд▓реЗ рд╕рдХрддреЗ рд╣реИрдВ,
рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдкреНрд░рд┐рдВрдЯ рдИрд╡реЗрдВрдЯ рдХреЗ рдЕрдВрдд рдХреЛ рд╕рдВрднрд╛рд▓реЗрдВред

рдмрд╣реБрдд рдЕрдВрдд рдореЗрдВ рддреИрдпрд╛рд░ рдлрд╝рдВрдХреНрд╢рди рдХреЗ рдЕрдВрджрд░, рдЕрдиреБрдмрдВрдз рдХрд╛ рд╕рдорд░реНрдерди рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдкрдВрдЬреАрдХрд░рдг рдХреЙрд▓ рдЬреЛрдбрд╝реЗрдВ:
  setupPrinting(item); 


рдФрд░ рдХреНрд▓реАрдпрд░рдХреЙрдиреНрдЯреНрд░реИрдХреНрдЯреНрд╕ рдореЗрдВ рдкреНрд░рд┐рдВрдЯ рдЕрдиреБрд░реЛрдз рд╣реИрдВрдбрд▓рд░ рдХреЛ рд╣рдЯрд╛рдирд╛ рди рднреВрд▓реЗрдВ:

  var printManager = Windows.Graphics.Printing.PrintManager.getForCurrentView(); printManager.removeEventListener("printtaskrequested", printTaskHandler); 


рдПрдкреНрд▓рд┐рдХреЗрд╢рди рд▓реЙрдиреНрдЪ рдХрд░рдиреЗ рдФрд░ рдкреНрд░рд┐рдВрдЯ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рд▓реЗрдЦ рднреЗрдЬрдиреЗ рдХрд╛ рдкреНрд░рдпрд╛рд╕ рдХрд░реЗрдВ:





рдпрджрд┐ рдЖрдк рдкрд░реНрдпрд╛рдкреНрдд рд░реВрдк рд╕реЗ рдЕрд╡рд▓реЛрдХрди рдХрд░ рд░рд╣реЗ рд╣реИрдВ, рддреЛ рдЖрдкрдХреЛ рддреБрд░рдВрдд рдЙрд╕ рд╕рдорд╕реНрдпрд╛ рдХреЛ рджреЗрдЦрдирд╛ рдЪрд╛рд╣рд┐рдП рдЬреЛ рдЙрддреНрдкрдиреНрди рд╣реБрдИ рд╣реИ: рдХреЗрд╡рд▓ рдПрдХ рдкреГрд╖реНрда рдореБрджреНрд░рдг рдХреЗ рд▓рд┐рдП рднреЗрдЬрд╛ рдЧрдпрд╛ рд╣реИ, рдФрд░ рдЗрд╕ рд░реВрдк рдореЗрдВ рдХрд┐ рдкреГрд╖реНрда рд╕реНрдХреНрд░реАрди рдкрд░ (рдХреНрд╖реИрддрд┐рдЬ рд╕реНрдХреНрд░реЙрд▓рд┐рдВрдЧ рдХреЗ рд╕рд╛рде) рдЬреИрд╕рд╛ рджрд┐рдЦрддрд╛ рд╣реИред

рд╡реЗрдм рдХреЗ рд▓рд┐рдП рдЖрдк рдЗрд╕ рд╕рдорд╕реНрдпрд╛ рдХреЛ рдХреИрд╕реЗ рд╣рд▓ рдХрд░реЗрдВрдЧреЗ, рдЗрд╕рдХреЗ рд╕рдорд╛рди, рдпрд╣рд╛рдВ рдореАрдбрд┐рдпрд╛ рдХреНрд╡реЗрд░реА рдФрд░ рдкреНрд░рд┐рдВрдЯрд┐рдВрдЧ рдХреЗ рд╕реАрдПрд╕рдПрд╕ рдирд┐рдпрдо рд╣рдорд╛рд░реА рд╕рд╣рд╛рдпрддрд╛ рдХреЗ рд▓рд┐рдП рдЖрддреЗ рд╣реИрдВред (рдЖрдк рдПрдХ рд╡рд┐рд╢реЗрд╖ рд░реВрдк рд╕реЗ рдЬрдирд░реЗрдЯ рдХрд┐рдП рдЧрдП рдкреГрд╖реНрда, рдЯреБрдХрдбрд╝рд╛, iframe, рдЖрджрд┐ рдХреЛ рднреА рдкреНрд░рд┐рдВрдЯ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ)

рдкреНрд░реЛрдЬреЗрдХреНрдЯ рдореЗрдВ рдПрдХ рдирдпрд╛ рдкреГрд╖реНрда \ ItemDetail \ print.css рдлрд╝рд╛рдЗрд▓ рдЬреЛрдбрд╝реЗрдВ, рдпрд╛ рдмрд╕ рдЗрдЪреНрдЫрд┐рдд рдкреГрд╖реНрда (itemDetail.css) рд╕реЗ рдЬреБрдбрд╝реА рд╕реАрдПрд╕рдПрд╕ рдлрд╝рд╛рдЗрд▓ рдореЗрдВ рдиреАрдЪреЗ рдХреЛрдб рд▓рд┐рдЦреЗрдВред рдЗрд╕рдореЗрдВ рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рдкрдВрдХреНрддрд┐рдпрд╛рдБ рдЬреЛрдбрд╝реЗрдВ:

 @media print { /*   */ .itemdetailpage.fragment { -ms-grid-rows: 40px 1fr; } /*    */ header[role="banner"] { -ms-grid-columns: 40px 1fr !important; } /*   "" */ .win-backbutton { display:none; } /*      */ header[role="banner"] h1.titlearea { margin: 0px !important; font-size: 1em; text-transform: uppercase; } /*         */ .itemdetailpage.fragment, .itemdetailpage .content, .itemdetailpage .content article { height:auto !important; overflow: visible !important; } /*   */ .content { padding-left: 40px; } /*    */ .itemdetailpage .content article { column-width: auto; width: auto; margin-left: 0px; margin-top: 40px; } } 


рд╣рдо рдПрдкреНрд▓рд┐рдХреЗрд╢рди рд▓реЙрдиреНрдЪ рдХрд░рддреЗ рд╣реИрдВ рдФрд░ рдЗрд╕реЗ рдкреНрд░рд┐рдВрдЯ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рднреЗрдЬрдиреЗ рдХрд╛ рдкреНрд░рдпрд╛рд╕ рдХрд░рддреЗ рд╣реИрдВ:


рдпрд╣ рд╡рд░реНрддрдорд╛рди рд▓реЗрдЦ рдХреЛ рд╕рдорд╛рдкреНрдд рдХрд░рддрд╛ рд╣реИред

рдкрд░рд┐рдпреЛрдЬрдирд╛


рд╡рд░реНрддрдорд╛рди рдЪрд░рдг рдореЗрдВ рддреИрдпрд╛рд░ рдкрд░рд┐рдпреЛрдЬрдирд╛ рдпрд╣рд╛рдБ рдбрд╛рдЙрдирд▓реЛрдб рдХреА рдЬрд╛ рд╕рдХрддреА рд╣реИ: http://aka.ms/win8jsreadertemplate_v2 ред

рдЖрдЧреЗ


рдЕрдЧрд▓реЗ рднрд╛рдЧ рдореЗрдВ, рд╣рдо рдкреНрд░рджрд░реНрд╢рди рд╕реЗ рдирд┐рдкрдЯрдирд╛ рдЬрд╛рд░реА рд░рдЦреЗрдВрдЧреЗ рдФрд░ рджреЗрдЦреЗрдВрдЧреЗ рдХрд┐ рдЕрдзрд┐рдХ рдЬрдЯрд┐рд▓ рдЯреЗрдореНрдкрд▓реЗрдЯреНрд╕ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХреИрд╕реЗ рдХрд░реЗрдВ рдФрд░ рдкреНрд░рд╛рд╕рдВрдЧрд┐рдХ рд╕реНрдХреЗрд▓рд┐рдВрдЧ рдХреЗ рд▓рд┐рдП рд╕рдорд░реНрдерди рдЬреЛрдбрд╝реЗрдВред

рдкрд┐рдЫрд▓реЗ рднрд╛рдЧреЛрдВ


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


All Articles