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

Xamarin рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ iOS рдФрд░ Android рдХреЗ рд▓рд┐рдП рдПрдкреНрд▓рд┐рдХреЗрд╢рди рд╡рд┐рдХрд╕рд┐рдд рдХрд░рддреЗ рд╕рдордп, рдбреЗрд╡рд▓рдкрд░реНрд╕ C # рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдХрд┐рд╕реА рднреА рдореВрд▓ рдПрдкреАрдЖрдИ рддрдХ рдкрд╣реБрдВрдЪ рд╕рдХрддреЗ рд╣реИрдВред рдпреЗ рдмрд╛рдЗрдВрдбрд┐рдВрдЧ рди рдХреЗрд╡рд▓ C # рдореЗрдВ рдЙрдкрдпреБрдХреНрдд API рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдореЗрдВ рдорджрдж рдХрд░рддреЗ рд╣реИрдВ, рдмрд▓реНрдХрд┐ рдЗрд╕ рднрд╛рд╖рд╛ рдХреЗ рд╢рдХреНрддрд┐рд╢рд╛рд▓реА рдХрд╛рд░реНрдпреЛрдВ рдХреЛ рднреА рдкреНрд░рджрд╛рди рдХрд░рддреЗ рд╣реИрдВ, рдЬреИрд╕реЗ рдХрд┐ async / рдкреНрд░рддреАрдХреНрд╖рд╛, рдИрд╡реЗрдВрдЯ, рдбреЗрд▓рд┐рдЧреЗрдЯреНрд╕ рдЖрджрд┐ред
рдпрд╣ рдбреЗрд╡рд▓рдкрд░реНрд╕ рдХреЗ рд▓рд┐рдП рдПрдХ рдмрд╣реБрдд рдмрдбрд╝рд╛ рд▓рд╛рдн рд╣реИ рдХреНрдпреЛрдВрдХрд┐ рдЙрдиреНрд╣реЗрдВ рдХрднреА рднреА C # рдХреЗ рдмрд╛рд╣рд░ рдХрд╛рдо рдирд╣реАрдВ рдХрд░рдирд╛ рд╣реЛрдЧрд╛, рднрд▓реЗ рд╣реА рд╡реЗ рдПрдХ рд╕рд╛рдорд╛рдиреНрдп рд╡реНрдпрд╡рд╕рд╛рдп рддрд░реНрдХ, рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдЗрдВрдЯрд░рдлрд╝реЗрд╕ рдпрд╛ рдореВрд▓ рдХрд╛рд░реНрдпреЛрдВ рдХреЛ рдПрдХреНрд╕реЗрд╕ рдХрд░рддреЗ рд╣реЛрдВред рдореБрдЦреНрдп рд╡рд┐рд╢реЗрд╖рддрд╛рдУрдВ рдореЗрдВ рд╕реЗ рдПрдХ рдЬрд┐рд╕реЗ рдкреНрд░реЛрдЧреНрд░рд╛рдорд░ рдЕрдХреНрд╕рд░ рджреЗрдЦрдирд╛ рдЪрд╛рд╣рддреЗ рд╣реИрдВ рдЬрдм рдЬрд╝рд╛рдорд░реАрди рдкрд░ рдХреНрд░реЙрд╕-рдкреНрд▓реЗрдЯрдлрд╝реЙрд░реНрдо рдПрдкреНрд▓рд┐рдХреЗрд╢рди рд╡рд┐рдХрд╕рд┐рдд рдХрд░рдирд╛ рд╕рд╛рдорд╛рдиреНрдп рдХреЛрдб рд╕реЗ рд╕рд╛рдорд╛рдиреНрдп рджреЗрд╢реА рдХрд╛рд░реНрдпреЛрдВ рддрдХ рдкрд╣реБрдВрдЪрдиреЗ рдХреА рдХреНрд╖рдорддрд╛ рд╣реИ, рдЬрд┐рд╕рдореЗрдВ рдЙрдиреНрд╣реЗрдВ рдЕрдкрдиреА рдЦреБрдж рдХреА рдкрд░рддреЛрдВ рдХреЛ рд▓рд┐рдЦрдиреЗ рдпрд╛ рд╕рдореБрджрд╛рдп рджреНрд╡рд╛рд░рд╛ рдмрдирд╛рдП рдЧрдП рдореБрдлреНрдд рдкреНрд▓рдЧ-рдЗрди рдЦреЛрдЬрдиреЗ рдХреА рдХреНрд╖рдорддрд╛ рдирд╣реАрдВ рд╣реИред
Xamarin.Essentials Xamarin рдкрд░ рдмрдирд╛рдП рдЧрдП рдХрд┐рд╕реА рднреА рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдХреЗ рд▓рд┐рдП рдЬрд┐рдпреЛрд▓реЛрдХреЗрд╢рди, рд╕реЗрдВрд╕рд░ рд░реАрдбрд┐рдВрдЧ, рд╕реБрд░рдХреНрд╖рд┐рдд рднрдВрдбрд╛рд░рдг рдЖрджрд┐ рдЬреИрд╕реА рд╕реБрд╡рд┐рдзрд╛рдУрдВ рддрдХ рдкрд╣реБрдВрдЪ рдХреЗ рд▓рд┐рдП рдПрдХ рдПрдХреАрдХреГрдд рдПрдкреАрдЖрдИ рдХреЗ рд╕рдкрдиреЗ рдХреЛ рд╕рд╛рдХрд╛рд░ рдХрд░рддрд╛ рд╣реИ!
Xamarin.Essentials рдореЗрдВ рдПрдкреАрдЖрдИ
рдкрд░реАрдХреНрд╖рдг рд╕рдВрд╕реНрдХрд░рдг рдореЗрдВ, рдЖрдЬ рдЙрдкрд▓рдмреНрдз рд╣реИ, Xamarin.Essentials API рдПрдХрд▓ рдХреНрд░реЙрд╕-рдкреНрд▓реЗрдЯрдлрд╝реЙрд░реНрдо рдПрдкреАрдЖрдИ рд▓рд╛рдЗрдмреНрд░реЗрд░реА рд╕реЗ 25 рд╕реЗ рдЕрдзрд┐рдХ рдореВрд▓ рдХрд╛рд░реНрдпреЛрдВ рддрдХ рдкрд╣реБрдВрдЪ рдкреНрд░рджрд╛рди рдХрд░рддрд╛ рд╣реИ, рдЬрд┐рд╕реЗ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдЗрдВрдЯрд░рдлрд╝реЗрд╕ рдХреИрд╕реЗ рдмрдирд╛рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рдЗрд╕рдХреА рдкрд░рд╡рд╛рд╣ рдХрд┐рдП рдмрд┐рдирд╛ рд╕рд╛рдорд╛рдиреНрдп рдХреЛрдб рд╕реЗ рдкрд╣реБрдБрдЪрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред рдЗрд╕рдХрд╛ рдорддрд▓рдм рд╣реИ рдХрд┐ рдЖрдк Xamarin.Essentials API рдХрд╛ рдЙрдкрдпреЛрдЧ рдПрдХ рдПрдХрд▓ Xamarin.Android рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдпрд╛ рдПрдХ Xamarin.Forms рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдХреЗ рд╕рд╛рде рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ рдЬреЛ iOS, Android рдФрд░ UWP рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЕрдиреБрдХреВрд▓рд┐рдд рд╣реИред рдмрдбрд╝реА рд╕рдВрдЦреНрдпрд╛ рдореЗрдВ рдХрд╛рд░реНрдпреЛрдВ рдХреЗ рдмрд╛рд╡рдЬреВрдж, рдпрд╣ рд▓рд╛рдЗрдмреНрд░реЗрд░реА рдкреВрд░реА рддрд░рд╣ рд╕реЗ рд╕рдмрд╕реЗ рддреЗрдЬрд╝ рд╕рдВрдЪрд╛рд▓рди рдФрд░ рдЖрд╡реЗрджрди рдХреЗ рдЖрдХрд╛рд░ рдкрд░ рдиреНрдпреВрдирддрдо рдкреНрд░рднрд╛рд╡ рдХреЗ рд▓рд┐рдП рдЕрдиреБрдХреВрд▓рд┐рдд рд╣реИ, рдХреНрдпреЛрдВрдХрд┐ рдпрд╣ рд▓рд┐рдВрдХрд░ рд╕реЗ рд╕реБрд░рдХреНрд╖рд┐рдд рд╣реИред рдЗрд╕рдХрд╛ рдорддрд▓рдм рд╣реИ рдХрд┐ рдЖрдкрдХреЗ рджреНрд╡рд╛рд░рд╛ рдЙрдкрдпреЛрдЧ рдХрд┐рдП рдЬрд╛рдиреЗ рд╡рд╛рд▓реЗ рдХреЗрд╡рд▓ API рдФрд░ рдлрд╝рдВрдХреНрд╢рди рдЖрдкрдХреЗ рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдореЗрдВ рд╢рд╛рдорд┐рд▓ рдХрд┐рдП рдЬрд╛рдПрдВрдЧреЗ, рдФрд░ рдмрд╛рдХреА рд╕рдм рдХреБрдЫ рд╕рдВрдХрд▓рди рд╕рдордп рдкрд░ рд╣рдЯрд╛ рджрд┐рдпрд╛ рдЬрд╛рдПрдЧрд╛ред
рд▓рд╛рдЗрдмреНрд░реЗрд░реА рдХрд╛ рдореВрд▓реНрдпрд╛рдВрдХрди рд╕рдВрд╕реНрдХрд░рдг, рдЬреЛ рдХреНрд░реЙрд╕-рдкреНрд▓реЗрдЯрдлрд╝реЙрд░реНрдо рдПрдкреАрдЖрдИ рдХреЗ рдореВрд▓ рд╕реЗрдЯ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддрд╛ рд╣реИ, рдХреЛ рдЖрдкрдХреЗ рдЖрд╡реЗрджрди рдореЗрдВ NuGet рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рд╕реНрдерд╛рдкрд┐рдд рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ:
рдкреНрд░рд╛рд░рдВрднрд┐рдХ рдПрдкреАрдЖрдИ рд╕реЗрдЯ рдХреЛ Xamarin рдбреЗрд╡рд▓рдкрд░реНрд╕ рдХреА рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛ рдХреЗ рдЖрдзрд╛рд░ рдкрд░ рдирд┐рд░реНрдзрд╛рд░рд┐рдд рдХрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛ рдХрд┐ рд╡реЗ рдХреНрд░реЙрд╕-рдкреНрд▓реЗрдЯрдлреЙрд░реНрдо рдПрдкреАрдЖрдИ рд▓рд╛рдЗрдмреНрд░реЗрд░реА рдореЗрдВ рдХреНрдпрд╛ рд╡рд┐рд╢реЗрд╖рддрд╛рдПрдВ рджреЗрдЦрдирд╛ рдЪрд╛рд╣рддреЗ рд╣реИрдВред рд╕рдордп рдХреЗ рд╕рд╛рде, рд╣рдо рдЗрд╕ рд╕реВрдЪреА рдХрд╛ рд╡рд┐рд╕реНрддрд╛рд░ рдХрд░реЗрдВрдЧреЗред
рд╢реБрд░реБрдЖрдд рд╣реЛ рд░рд╣реА рд╣реИ
Xamarin.Essentials рдПрдкреАрдЖрдИ рдХреЗ рд╕рд╛рде рд╢реБрд░реБрдЖрдд рдХрд░рдирд╛ рдХреЗрд╡рд▓ рдХреБрдЫ рд╕рд░рд▓ рдЪрд░рдгреЛрдВ рдХрд╛ рдкрд╛рд▓рди рдХрд░рдХреЗ рдХрд┐рд╕реА рднреА рдореМрдЬреВрджрд╛ рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдореЗрдВ рдЖрд╕рд╛рди рд╣реИ:
1. рдПрдХ рдореМрдЬреВрджрд╛ рдкреНрд░реЛрдЬреЗрдХреНрдЯ рдЦреЛрд▓реЗрдВ рдпрд╛ рд╡рд┐рдЬрд╝реБрдЕрд▓ рд╕реНрдЯреВрдбрд┐рдпреЛ C # (Android, iPhone рдФрд░ iPad рдпрд╛ рдХреНрд░реЙрд╕-рдкреНрд▓реЗрдЯрдлрд╝реЙрд░реНрдо рдХреЗ рд▓рд┐рдП) рдореЗрдВ рдмреНрд▓реИрдВрдХ рдРрдк рдЯреЗрдореНрдкрд▓реЗрдЯ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдПрдХ рдирдпрд╛ рдмрдирд╛рдПрдВред
2. рдкрд░рд┐рдпреЛрдЬрдирд╛ рдХреЗ рд▓рд┐рдП Xamarin.Essentials NuGet рдкреИрдХреЗрдЬ рдЬреЛрдбрд╝реЗрдВ:
- рд╡рд┐рдЬреБрдЕрд▓ рд╕реНрдЯреВрдбрд┐рдпреЛ рд╕рдорд╛рдзрд╛рди рдПрдХреНрд╕рдкреНрд▓реЛрд░рд░ рдкреИрдирд▓ рдореЗрдВ, рд╕рдорд╛рдзрд╛рди рдХреЗ рдирд╛рдо рдкрд░ рд░рд╛рдЗрдЯ-рдХреНрд▓рд┐рдХ рдХрд░реЗрдВ рдФрд░ рдкреНрд░рдмрдВрдзрд┐рдд рдХрд░реЗрдВ NuGet рдкреИрдХреЗрдЬред Xamarin.Essentials рдвреВрдБрдвреЗрдВ рдФрд░ iOS, Android, UWP рдФрд░ .NET рдорд╛рдирдХ рдкреБрд╕реНрддрдХрд╛рд▓рдпреЛрдВ рд╕рд╣рд┐рдд рд╕рднреА рдкрд░рд┐рдпреЛрдЬрдирд╛рдУрдВ рдореЗрдВ рдкреИрдХреЗрдЬ рд╕реНрдерд╛рдкрд┐рдд рдХрд░реЗрдВред
- рдореИрдХ рдХреЗ рд▓рд┐рдП рд╡рд┐рдЬреБрдЕрд▓ рд╕реНрдЯреВрдбрд┐рдпреЛред рд╕рдорд╛рдзрд╛рди рдПрдХреНрд╕рдкреНрд▓реЛрд░рд░ рдкреИрдирд▓ рдореЗрдВ, рдкреНрд░реЛрдЬреЗрдХреНрдЯ рдХреЗ рдирд╛рдо рдкрд░ рд░рд╛рдЗрдЯ-рдХреНрд▓рд┐рдХ рдХрд░реЗрдВ рдФрд░ Add> NuGet Package рдЬреЛрдбрд╝реЗрдВ ... Xamarin.Essentials рдвреВрдВрдвреЗрдВ рдФрд░ iOS, Android рдФрд░ .NET рдорд╛рдирдХ рдкреБрд╕реНрддрдХрд╛рд▓рдпреЛрдВ рд╕рд╣рд┐рдд рд╕рднреА рдкрд░рд┐рдпреЛрдЬрдирд╛рдУрдВ рдореЗрдВ рдкреИрдХреЗрдЬ рд╕реНрдерд╛рдкрд┐рдд рдХрд░реЗрдВред
3. рдПрдкреАрдЖрдИ рдХреЛ рд╕рдВрджрд░реНрднрд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП C # рдХрдХреНрд╖рд╛рдУрдВ рдореЗрдВ рд╕реЗ рдХрд┐рд╕реА рдореЗрдВ Xamarin.Essentials рдХрд╛ рд▓рд┐рдВрдХ рдЬреЛрдбрд╝реЗрдВред
using Xamarin.Essentials;
4. Xamarin.Essentials рдХреЛ рд╡рд┐рд╢реЗрд╖ рдХрд╛рд░реНрдпреЛрдВ рддрдХ рдкрд╣реБрдВрдЪ рдкреНрд░рд╛рдкреНрдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП Android рдкрд░рд┐рдпреЛрдЬрдирд╛рдУрдВ рдХреЗ рд▓рд┐рдП рдереЛрдбрд╝рд╛ рдЕрддрд┐рд░рд┐рдХреНрдд рдЕрдиреБрдХреВрд▓рди рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрддреА рд╣реИ:
Xamarin.Essentials рдХреЛ MainCauncher рдпрд╛ Android рдкреНрд░реЛрдЬреЗрдХреНрдЯ рдореЗрдВ рдХрд┐рд╕реА рдЕрдиреНрдп рдЧрддрд┐рд╡рд┐рдзрд┐ рдкрд░ OnCreate рдкрджреНрдзрддрд┐ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдЖрд░рдВрдн рдХрд┐рдпрд╛ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдП:
Xamarin.Essentials.Platform.Init(this, bundle);
Android рдкрд░ рд░рдирдЯрд╛рдЗрдо рдЕрдиреБрдорддрд┐рдпреЛрдВ рдХреЛ рд╕рдВрднрд╛рд▓рдиреЗ рдХреЗ рд▓рд┐рдП, Xamarin.Essentials рдХреЛ рдХрд┐рд╕реА рднреА OnRequestPcriResult рдХреЛ рдкреНрд░рд╛рдкреНрдд рдХрд░рдирд╛ рд╣реЛрдЧрд╛ред рд╕рднреА рдЧрддрд┐рд╡рд┐рдзрд┐ рд╡рд░реНрдЧреЛрдВ рдореЗрдВ рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рдХреЛрдб рдЬреЛрдбрд╝реЗрдВ:
public override void OnRequestPermissionsResult(int requestCode, string[] permissions, [GeneratedEnum] Android.Content.PM.Permission[] grantResults) { Xamarin.Essentials.Platform.OnRequestPermissionsResult(requestCode, permissions, grantResults); base.OnRequestPermissionsResult(requestCode, permissions, grantResults); }
рд╣реЛ рдЧрдпрд╛! рдЕрдм рдЖрдк рдЕрдкрдиреЗ рдЖрд╡реЗрджрди рдореЗрдВ Xamarin.Essentials API рдХрд╛ рдЙрдкрдпреЛрдЧ рд╢реБрд░реВ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред рдкреНрд░рддреНрдпреЗрдХ рдПрдкреАрдЖрдИ
рдкреВрд░реНрдг рдкреНрд░рд▓реЗрдЦрди рдХреЗ рд╕рд╛рде рдЖрддрд╛ рд╣реИ, рдЬрд┐рд╕рдореЗрдВ рдХреЛрдб рд╕реНрдирд┐рдкреЗрдЯ рд╢рд╛рдорд┐рд▓ рд╣реИрдВ рдЬрд┐рдиреНрд╣реЗрдВ рдЖрдк рдЕрдкрдиреЗ рдЖрд╡реЗрджрди рдореЗрдВ рдХреЙрдкреА рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред
рдЕрдзрд┐рдХ рдЬрд╛рдирдХрд╛рд░реА рдХреЗ рд▓рд┐рдП рд╣рдорд╛рд░реЗ
рдЧреЗрдЯрд┐рдВрдЧ рд╕реНрдЯрд╛рд░реНрдЯреЗрдб рдЧрд╛рдЗрдб рдХреЛ рдЕрд╡рд╢реНрдп рдкрдврд╝реЗрдВред
рдХрдореНрдкрд╛рд╕ рд╡рд┐рдзрд╛рдирд╕рднрд╛
Microsoft рдмрд┐рд▓реНрдб 2018
рдореЗрдВ рдЕрдкрдиреЗ рдПрдХ рднрд╛рд╖рдг рдХреЗ рджреМрд░рд╛рди, рдореИрдВрдиреЗ рджрд┐рдЦрд╛рдпрд╛ рдХрд┐ Xamarin.Forms рдФрд░ Xamarin.Essentials рдПрдкреАрдЖрдИ рдХреА рдХреНрд╖рдорддрд╛рдУрдВ рдХреЛ рдХреИрд╕реЗ рд╕рдВрдпреЛрдЬрд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рдП, 10 рдорд┐рдирдЯ рд╕реЗ рдХрдо рд╕рдордп рдореЗрдВ рдХреНрд░реЙрд╕-рдкреНрд▓реЗрдЯрдлреЙрд░реНрдо рдХрдореНрдкрд╛рд╕ рдХреЛ рдЗрдХрдЯреНрдард╛ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдПред рдпрд╣ рдЕрдиреБрдкреНрд░рдпреЛрдЧ рдореЗрдВ рдХреБрдЫ рдЫрд╡рд┐рдпреЛрдВ рдФрд░ рдПрдХ рдЫреЛрдЯреЗ рдХрдореНрдкрд╛рд╕ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдЗрдВрдЯрд░рдлрд╝реЗрд╕ рдХреЛ рдЬреЛрдбрд╝рдиреЗ рдХреЗ рд░реВрдк рдореЗрдВ рд╕рд░рд▓ рд╣реИ:
<Grid> <Grid.RowDefinitions> <RowDefinition Height="*"/> <RowDefinition Height="Auto"/> </Grid.RowDefinitions> <Image HorizontalOptions="FillAndExpand" VerticalOptions="FillAndExpand" Source="compass.png"/> <Image HorizontalOptions="Center" VerticalOptions="Center" Source="arrow.png" x:Name="ImageArrow"/> <Label Grid.Row="1" x:Name="LabelInfo" VerticalOptions="Center" HorizontalOptions="Center" /> </Grid>
рдХрдореНрдкрд╛рд╕ рд╕реНрдерд┐рддрд┐ рдмрджрд▓рдиреЗ рдкрд░, рд▓реЗрдмрд▓ рдЯреЗрдХреНрд╕реНрдЯ рдХреЛ рдЕрдкрдбреЗрдЯ рдХрд░рдиреЗ рдФрд░ рдЫрд╡рд┐ рдХреЛ рдШреБрдорд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдореИрдВ рдКрдкрд░ рдХреЛрдб рдореЗрдВ Xamarin.Essentials рд╕реЗ
рдХрдореНрдкрд╛рд╕ рдПрдкреАрдЖрдИ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдореЗрдВ рд╕рдХреНрд╖рдо рдерд╛ред рдпрд╣ рд╕рдм рдХреЛрдб рдХреА рдХреБрдЫ рдкрдВрдХреНрддрд┐рдпреЛрдВ рдХреЗ рд╕рд╛рде рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ:
using Xamarin.Forms; using Xamarin.Essentials; namespace MyCompass { public partial class MainPage : ContentPage { public MainPage() { InitializeComponent();
рдЗрд╕ рд╕рд░рд▓ рддрд░реАрдХреЗ рд╕реЗ, рдПрдХ рдХрдореНрдкрд╛рд╕ рдЕрдиреБрдкреНрд░рдпреЛрдЧ рдмрдирд╛рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ! рдЖрдк
GitHub рдкрд░ рдкреВрд░реНрдг рд╕реНрд░реЛрдд рдХреЛрдб рдФрд░ рдЪрд┐рддреНрд░ рдкрд╛ рд╕рдХрддреЗ рд╣реИрдВ
редрднрд╡рд┐рд╖реНрдп рдХреА рдпреЛрдЬрдирд╛
Xamarin.Essentials рдХрд╛ рдкреВрд░реА рддрд░рд╣ рд╕реЗ рдкрд░реАрдХреНрд╖рдг рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рд╣рдо рдлрд┐рд░ рднреА рдЖрдкрдХреЛ рд╣рдорд╛рд░реЗ рдореВрд▓реНрдпрд╛рдВрдХрди рд╕рдВрд╕реНрдХрд░рдг рдХреЗ рджреМрд░рд╛рди рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛ рдЫреЛрдбрд╝рдиреЗ рдХреЗ рд▓рд┐рдП рдХрд╣рддреЗ рд╣реИрдВред рдЕрдкрдиреЗ рдЕрдиреБрдкреНрд░рдпреЛрдЧреЛрдВ рдореЗрдВ рдкреБрд╕реНрддрдХрд╛рд▓рдп рдХрд╛ рдкреНрд░рдпрд╛рд╕ рдХрд░реЗрдВ рдФрд░
Xamarin рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░рддреЗ рд╕рдордп рдЖрдкрдХреЗ рджреНрд╡рд╛рд░рд╛ рд╕рд╛рдордирд╛ рдХреА рдЬрд╛рдиреЗ рд╡рд╛рд▓реА рдХрд┐рд╕реА рднреА рд╕рдорд╕реНрдпрд╛ рдХреА рд░рд┐рдкреЛрд░реНрдЯ рдХрд░реЗрдВ
ред рд╕рдВрднрд╛рд╡рд┐рдд GitHub рд░рд┐рдкреЙрдЬрд┐рдЯрд░реА ред
рд╣рдо рдЗрд╕ рдкреБрд╕реНрддрдХрд╛рд▓рдп рдХреЛ рдЬрд╝рдорд╛рд░рд┐рди рдордВрдЪ рдХреЗ рдореБрдЦреНрдп рддрддреНрд╡ рдХреЗ рд░реВрдк рдореЗрдВ рдорд╛рдирддреЗ рд╣реИрдВ рдФрд░ рд╣рдо рдЬрд╛рдирддреЗ рд╣реИрдВ рдХрд┐ рдпрд╣ рд╕рднреА рдбреЗрд╡рд▓рдкрд░реНрд╕ рдФрд░ рдЕрдиреБрдкреНрд░рдпреЛрдЧреЛрдВ рдХреЗ рд▓рд┐рдП рдПрдХ рдорд╣рддреНрд╡рдкреВрд░реНрдг рдмрд┐рд▓реНрдбрд┐рдВрдЧ рдмреНрд▓реЙрдХ рд╣реИред рдЗрд╕рд▓рд┐рдП, рд╣рдо Xamarin.Essentials NuGet рдкреИрдХреЗрдЬ рдХреЛ рдкреНрд░рддреНрдпреЗрдХ iOS, Android рдФрд░ Xamarin.Forms рдЯреЗрдореНрдкрд▓реЗрдЯ рдореЗрдВ Visual Studio рдФрд░ Mac рдХреЗ рд▓рд┐рдП Visual Studio рдореЗрдВ рдПрдХреАрдХреГрдд рдХрд░реЗрдВрдЧреЗ рддрд╛рдХрд┐ рдбреЗрд╡рд▓рдкрд░реНрд╕ рдЗрди APIs рдХреЛ рдЕрдкрдиреА рдкрд░рд┐рдпреЛрдЬрдирд╛рдУрдВ рдХреЗ рдкрд╣рд▓реЗ рдЪрд░рдг рд╕реЗ рдПрдХреНрд╕реЗрд╕ рдХрд░ рд╕рдХреЗрдВред
рдЕрдкрдиреА рдЖрдБрдЦреЛрдВ рд╕реЗ рджреЗрдЦреЗрдВ
рдЖрдк Microsoft рдмрд┐рд▓реНрдб 2018 рдкрд░ рдкреНрд░рд╕реНрддреБрддрд┐ "рд╡рд┐рдЬреБрдЕрд▓ рд╕реНрдЯреВрдбрд┐рдпреЛ рдФрд░ рдЬрд╝реИрдорд░реАрди рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдореЛрдмрд╛рдЗрд▓ рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдмрдирд╛рдирд╛" рдХреА рдкреНрд░рд╕реНрддреБрддрд┐ рдХреЗ рд╣рд┐рд╕реНрд╕реЗ рдХреЗ рд░реВрдк рдореЗрдВ Xamarin, Xamarin.Forms, рдФрд░ Xamarin.Essentials рдХреА рдкреВрд░реА рд╕рдореАрдХреНрд╖рд╛ рджреЗрдЦ рд╕рдХрддреЗ рд╣реИрдВред
рдЕрддрд┐рд░рд┐рдХреНрдд рдЬрд╛рдирдХрд╛рд░реА
рдЖрд░рдВрдн рдХрд░рдиреЗ рдФрд░ рдкреНрд░рддреНрдпреЗрдХ Xamarin.Essentials рдлрд╝рдВрдХреНрд╢рди рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХреЗ
рд▓рд┐рдП рдПрдХ рдкреВрд░реНрдг рдорд╛рд░реНрдЧрджрд░реНрд╢рд┐рдХрд╛ рдХреЗ рд▓рд┐рдП рдЖрдк рд╣рдорд╛рд░реЗ
рджрд╕реНрддрд╛рд╡реЗрдЬрд╝ рджреЗрдЦ рд╕рдХрддреЗ рд╣реИрдВред рд╣рдордиреЗ
рдПрдкреАрдЖрдИ рд▓рд┐рдВрдХ рдХреА рдПрдХ рдкреВрд░реА рд╕реВрдЪреА рднреА рдкреНрд░рджрд╛рди рдХреА
рд╣реИ рдЬрд┐рд╕реЗ рдЖрдк Xamarin.Essentials API рдХреЗ рд╕рднреА рд╡рд┐рд╡рд░рдгреЛрдВ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдЬрд╛рдирдиреЗ рдХреЗ рд▓рд┐рдП рдЗрдВрдЯрд░рдиреЗрдЯ рдкрд░ рджреЗрдЦ рд╕рдХрддреЗ рд╣реИрдВред