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


рдЖрдЬ рдореИрдВ рдЗрд╕ рдмрд╛рд░реЗ рдореЗрдВ рдмрд╛рдд рдХрд░рдирд╛ рдЪрд╛рд╣рддрд╛ рд╣реВрдВ рдХрд┐ рдПрдЪрдЯреАрдПрдордПрд▓ 5 рдФрд░ рдЬрд╛рд╡рд╛рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдХреЗ рдорд╛рд▓рд┐рдХрд╛рдирд╛ рд╣рдХ рд╡рд╛рд▓реЗ рд╡рд┐рдВрдбреЛрдЬ рдлреЛрди рдХреЗ рд╡рд┐рдХрд╛рд╕ рдХреЗ рд▓рд┐рдП рдХреНрдпрд╛ рдЕрддрд┐рд░рд┐рдХреНрдд рдЕрд╡рд╕рд░ рд╣реИрдВред

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

рдЗрд╕ рддрд░рд╣ рдХреЗ рд╕рдорд░реНрдерди рдХреЗ рд╕рд╛рде рдПрдХ рдореЛрдмрд╛рдЗрд▓ рдмреНрд░рд╛рдЙрдЬрд╝рд░ рдХреА рдЙрдкрд╕реНрдерд┐рддрд┐ рдкрд╣рд▓реЗ рд╕реЗ рд╣реА рдореЛрдмрд╛рдЗрд▓ рдкреНрд▓реЗрдЯрдлреЙрд░реНрдо рдкрд░ рд╣реЛрдиреЗ рдХреА рдмреБрдирд┐рдпрд╛рджреА рд╕рдВрднрд╛рд╡рдирд╛ рдкреНрд░рджрд╛рди рдХрд░рддреА рд╣реИ: рдПрдХ рд╕рдореГрджреНрдз рдореЛрдмрд╛рдЗрд▓ рд╕рд╛рдЗрдЯ рдмрдирд╛рдирд╛ред рд▓реЗрдХрд┐рди рд╣рдо рдЖрд╡реЗрджрди рд▓рд┐рдЦрдирд╛ рдЪрд╛рд╣рддреЗ рдереЗ! рдбреЗрд╡рд▓рдкрд░реНрд╕ рдХреЗ рд▓рд┐рдП рдЙрдкрд▓рдмреНрдз WebBrowser рдирд┐рдпрдВрддреНрд░рдг рдЕрдиреБрдкреНрд░рдпреЛрдЧреЛрдВ рдХреЛ рд╡рд┐рдХрд╕рд┐рдд рдХрд░рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрддрд╛ рд╣реИ:
<phone:WebBrowser Grid.Row="1" Name="MyBrowser" IsGeolocationEnabled="True" IsScriptEnabled="True" Background="{StaticResource PhoneBackgroundBrush}"/> 

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

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

рд╣рдореЗрд╢рд╛ рдХреА рддрд░рд╣, рд╣рдо рд╡рд┐рдВрдбреЛрдЬ рдлреЛрди рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдЯреЗрдореНрдкрд▓реЗрдЯ рдХреЗ рдЖрдзрд╛рд░ рдкрд░ рдПрдХ рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдмрдирд╛рдХрд░ рд╢реБрд░реВ рдХрд░рддреЗ рд╣реИрдВред NuGet рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╣реБрдП, рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдореЗрдВ рд╡рд┐рдВрдбреЛрдЬ рдлреЛрди рдЯреВрд▓рдХрд┐рдЯ рдкреИрдХреЗрдЬ рдХреЗ рд▓рд┐рдП рд╕рд┐рд▓реНрд╡рд░рд▓рд╛рдЗрдЯ рдЬреЛрдбрд╝реЗрдВред рдЙрд╕рдХреЗ рдмрд╛рдж, рдкреЗрдЬ рд▓реЛрдб рдХрд░рдиреЗ рдХреА рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдХреЛ рджрд┐рдЦрд╛рдиреЗ рдХреЗ рд▓рд┐рдП MainPaige.xaml рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдХреЗ рдореБрдЦреНрдп рдкреГрд╖реНрда рдкрд░ WebBrowser рдирд┐рдпрдВрддреНрд░рдг рдФрд░ PerformanceProgressBar рдЬреЛрдбрд╝реЗрдВред рдкрд░рд┐рдгрд╛рдорд╕реНрд╡рд░реВрдк, XAML рдХреЛрдб рдЗрд╕ рддрд░рд╣ рджрд┐рдЦреЗрдЧрд╛:
 <toolkit:PerformanceProgressBar Name="Progress" Height="10" IsIndeterminate="False" Background="{StaticResource PhoneBackgroundBrush}"/> <phone:WebBrowser Grid.Row="1" Name="Yandex" IsGeolocationEnabled="True" IsScriptEnabled="True" Background="{StaticResource PhoneBackgroundBrush}"/> 

рд╡рд┐рдВрдбреЛрдЬ рдлреЛрди рдЯреВрд▓рдХрд┐рдЯ рдХреЗ рд▓рд┐рдП рд╕рд┐рд▓реНрд╡рд░рд▓рд╛рдЗрдЯ рд╕реЗ рдирд┐рдпрдВрддреНрд░рдг рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдПрдХ рдирд╛рдо рд╕реНрдерд╛рди рд▓рд┐рдВрдХ рдЬреЛрдбрд╝рдирд╛ рди рднреВрд▓реЗрдВ:
  xmlns:toolkit="clr-namespace:Microsoft.Phone.Controls;assembly=Microsoft.Phone.Controls.Toolkit" 

рд╡рд┐рдВрдбреЛрдЬ рдлреЛрди рдХреА рд╢реИрд▓реА рдореЗрдВ рдПрдХ рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдмрдирд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдФрд░ рдЗрд╕рдореЗрдВ рдмрдЯрди рдЬреЛрдбрд╝рдиреЗ рдХреЗ рд▓рд┐рдП, рдореИрдВрдиреЗ рдПрдкреНрд▓реАрдХреЗрд╢рдирдмрд┐рдпрд░ рдХреЛ рдЕрдирд▓реЙрдХреНрдб рдХрд┐рдпрд╛, рдФрд░ рд▓реЗрдЦ рд╕реЗ рдЬрд╛рдирдХрд╛рд░реА рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдХрд┐ рд╡рд┐рдВрдбреЛрдЬ рдлреЛрди рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдХреЗ рд▓рд┐рдП рдЖрдЗрдХрди рдХрд╣рд╛рдВ рдкреНрд░рд╛рдкреНрдд рдХрд░реЗрдВ ? рдореЗрд░реЗ рдЖрд╡реЗрджрди рдХреЗ рд▓рд┐рдП рдЖрд╡рд╢реНрдпрдХ рдЖрдЗрдХрди рдЦреЛрдЬрдиреЗ рдХреЗ рд▓рд┐рдПред рдореИрдВрдиреЗ рддреБрд░рдВрдд рдПрдкреНрд▓рд┐рдХреЗрд╢рди рд╣реИрдВрдбрдмрд╛рд░ рдкрд░ рдмрдЯрди рдореЗрдВ рдИрд╡реЗрдВрдЯ рд╣реИрдВрдбрд▓рд░ рднреА рдЬреЛрдбрд╝реЗред рдПрдХреНрд╕рдПрдПрдордПрд▓ рдХреЗ рдкрд░рд┐рдгрд╛рдорд╕реНрд╡рд░реВрдк, рдореЗрд░реЗ рдЖрд╡реЗрджрди рдХрд╛ рдореЗрд░рд╛ рдореЗрдирдкреЗрдЬ.xaml рдкреЗрдЬ рдХрд╛ рдХреЛрдб рдЗрд╕ рддрд░рд╣ рджрд┐рдЦрд╛рдИ рджреЗрдиреЗ рд▓рдЧрд╛:
 <phone:PhoneApplicationPage x:Class="MyYandexWithBJ.MainPage" xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" xmlns:phone="clr-namespace:Microsoft.Phone.Controls;assembly=Microsoft.Phone" xmlns:shell="clr-namespace:Microsoft.Phone.Shell;assembly=Microsoft.Phone" xmlns:d="http://schemas.microsoft.com/expression/blend/2008" xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006" xmlns:toolkit="clr-namespace:Microsoft.Phone.Controls;assembly=Microsoft.Phone.Controls.Toolkit" mc:Ignorable="d" d:DesignWidth="480" d:DesignHeight="696" FontFamily="{StaticResource PhoneFontFamilyNormal}" FontSize="{StaticResource PhoneFontSizeNormal}" Foreground="{StaticResource PhoneForegroundBrush}" SupportedOrientations="Portrait" Orientation="Portrait" shell:SystemTray.IsVisible="True"> <!--LayoutRoot is the root grid where all page content is placed--> <Grid x:Name="LayoutRoot" Background="Transparent"> <Grid.RowDefinitions> <RowDefinition Height="Auto"/> <RowDefinition Height="*"/> </Grid.RowDefinitions> <toolkit:PerformanceProgressBar Name="Progress" Height="10" IsIndeterminate="False" Background="{StaticResource PhoneBackgroundBrush}"/> <phone:WebBrowser Grid.Row="1" Name="Yandex" IsGeolocationEnabled="True" IsScriptEnabled="True" Background="{StaticResource PhoneBackgroundBrush}"/> </Grid> <!--Sample code showing usage of ApplicationBar--> <phone:PhoneApplicationPage.ApplicationBar> <shell:ApplicationBar IsVisible="True" IsMenuEnabled="True"> <shell:ApplicationBarIconButton IconUri="/icons/appbar.back.rest.png" Text="" lick="ApplicationBarBackButton_Click"/> <shell:ApplicationBarIconButton IconUri="/icons/appbar.home.png" Text="" Click="ApplicationBarHomeButton_Click"/> <shell:ApplicationBarIconButton IconUri="/icons/appbar.plane.rotated.45.png" Text="" Click="ApplicationBarFlightsButton_Click"/> <shell:ApplicationBarIconButton IconUri="/icons/appbar.next.rest.png" Text="" Click="ApplicationBarForwardButton_Click"/> </shell:ApplicationBar> </phone:PhoneApplicationPage.ApplicationBar> </phone:PhoneApplicationPage> 

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

рдПрдХ рдХреЛрдб рдЬреЛрдбрд╝реЗрдВ, рдЬрдм рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдбрд╛рдЙрдирд▓реЛрдб рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рдШрд░ рдХреЗ рд╕рд╛рде рдмрдЯрди рдкрд░ рдХреНрд▓рд┐рдХ рдХрд░рдХреЗ, рдпреИрдВрдбреЗрдХреНрд╕ рдореЛрдмрд╛рдЗрд▓ рдкреЗрдЬ рдЦреЛрд▓рддрд╛ рд╣реИ, рдЗрд╕реЗ рдЦреЛрд▓рддрд╛ рд╣реИ, рдФрд░ рдЬрдм рдЖрдк рд╡рд┐рдорд╛рди рдкрд░ рдХреНрд▓рд┐рдХ рдХрд░рддреЗ рд╣реИрдВ - рдЙрдбрд╝рд╛рди рдЕрдиреБрд╕реВрдЪреА рдХреЗ рд╕рд╛рде рдореЛрдмрд╛рдЗрд▓ рдкреЗрдЬ рдХреЛ рдлрд╛рдбрд╝ рджреЗрдВред
 // Constructor public MainPage() { InitializeComponent(); Loaded += new RoutedEventHandler(MainPage_Loaded); } void MainPage_Loaded(object sender, RoutedEventArgs e) { Yandex.Navigate(new Uri("http://m.yandex.ru")); } private void ApplicationBarHomeButton_Click(object sender, EventArgs e) { Yandex.Navigate(new Uri("http://m.yandex.ru")); } private void ApplicationBarFlightsButton_Click(object sender, EventArgs e) { Yandex.Navigate(new Uri("http://m.rasp.yandex.ru/station?plane=1")); } 

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

рдпрд╣ рдкреГрд╖реНрда рдкрд░ рдиреЗрд╡рд┐рдЧреЗрдЯ рдХрд░рддреЗ рд╕рдордп рдЖрдЧреЗ / рдкреАрдЫреЗ рдмрдЯрдиреЛрдВ рдХреЗ рдкреНрд░рд╕рдВрд╕реНрдХрд░рдг рдФрд░ рдкреНрд░реЛрдЧреНрд░реЗрд╕рдмрд╛рд░ рдХреЗ рдкреНрд░рджрд░реНрд╢рди рдХреЛ рдЬреЛрдбрд╝рдиреЗ рдХреЗ рд▓рд┐рдП рд░рд╣рддрд╛ рд╣реИред ProgressBar рдкреНрд░рджрд░реНрд╢рди рдХреЛ рдЬреЛрдбрд╝рдиреЗ рдХреЗ рд▓рд┐рдП, рдЖрдкрдХреЛ WebBrowation рдирд┐рдпрдВрддреНрд░рдг рдХреЗ рдиреЗрд╡рд┐рдЧреЗрдЯ рдФрд░ рдиреЗрд╡рд┐рдЧреЗрдЯ рдХрд┐рдП рдЧрдП рдИрд╡реЗрдВрдЯ рд╣реИрдВрдбрд▓рд░ рдХреЛ рдЬреЛрдбрд╝рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ:
 void MainPage_Loaded(object sender, RoutedEventArgs e) { Yandex.Navigated += new EventHandler<System.Windows.Navigation.NavigationEventArgs>(Yandex_Navigated); Yandex.Navigating += new EventHandler<NavigatingEventArgs>(Yandex_Navigating); Yandex.Navigate(new Uri(http://m.yandex.ru)); } void Yandex_Navigating(object sender, NavigatingEventArgs e) { Progress.IsIndeterminate = true; } void Yandex_Navigated(object sender, System.Windows.Navigation.NavigationEventArgs e) { Progress.IsIndeterminate = false; } 

рдмрдЯрди рдХреЛ рдЖрдЧреЗ рдФрд░ рдкреАрдЫреЗ рджрдмрд╛рдиреЗ рдХреЗ рд▓рд┐рдП, рд╣рдо рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдХреЛрдб рд╕реЗ рдЗрд╕реЗ рдХреЙрд▓ рдХрд░рдиреЗ рдХреА рдХреНрд╖рдорддрд╛ рдХреЗ рд╕рд╛рде-рд╕рд╛рде рдЬрд╛рд╡рд╛рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдФрд░ рдЗрддрд┐рд╣рд╛рд╕ рд╡рд┐рдХрд▓реНрдкреЛрдВ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░реЗрдВрдЧреЗ:
 private void ApplicationBarBackButton_Click(object sender, EventArgs e) { Yandex.InvokeScript("eval", "history.go(-1)"); } private void ApplicationBarForwardButton_Click(object sender, EventArgs e) { Yandex.InvokeScript("eval", "history.go(1)"); } 

рдЕрдм рд╣рдорд╛рд░реЗ рдкрд╛рд╕ рдПрдХ рд╣реЛрдо рдмрдЯрди рдФрд░ рдлрд╝реНрд▓рд╛рдЗрдЯ рд╢реЗрдбреНрдпреВрд▓ рдХреЗ рд╕рд╛рде рд╣рдорд╛рд░рд╛ рдЕрдкрдирд╛ рдПрдкреНрд▓рд┐рдХреЗрд╢рди "рдореЛрдмрд╛рдЗрд▓ рдпрд╛рдВрдбреЗрдХреНрд╕" рд╣реИред рд╡реНрдпрд╛рдпрд╛рдо рдХреЗ рд▓рд┐рдП рдПрдХ рдЕрдЪреНрдЫрд╛ рдирд┐рд╖реНрдХрд░реНрд╖ рдкрд┐рдЫрдбрд╝реЗ / рдЖрдЧреЗ рдХреЗ рдмрдЯрди рдХреЛ рд╕реНрдерд╛рдирд╛рдВрддрд░рд┐рдд рдХрд░рдиреЗ рдХреА рдХреНрд╖рдорддрд╛ рдХреА рдПрдХ рдкрд░рд┐рднрд╛рд╖рд╛ рдЬреЛрдбрд╝рдирд╛ рд╣реИ рддрд╛рдХрд┐ рд╡реЗ рдХреЗрд╡рд▓ рддрднреА рд╕рдХреНрд░рд┐рдп рд╣реЛрдВ рдЬрдм рд╕рдВрдХреНрд░рдордг рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред

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

рдЖрдЗрдП, рдРрд╕реЗ рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдХрд╛ рдПрдХ рдЙрджрд╛рд╣рд░рдг рд▓рд┐рдЦрддреЗ рд╣реИрдВред рдпрд╣ рдПрдХ рд╕реНрдерд╛рдиреАрдп рдПрдЪрдЯреАрдПрдордПрд▓ 5 рдкреЗрдЬ рд╣реЛрдЧрд╛ рдЬрд┐рд╕рдХреА рд╕рдХреНрд░рд┐рдп рд╕рд╛рдордЧреНрд░реА рдЬреЗрдПрд╕ рджреНрд╡рд╛рд░рд╛ рдмрдирд╛рдИ рдЬрд╛рдПрдЧреАред рд╡рд┐рдХрд╛рд╕ рдХреЛ рд╕рд░рд▓ рдмрдирд╛рдиреЗ рдХреЗ рд▓рд┐рдП, рд╣рдо jQuery рд▓рд╛рдЗрдмреНрд░реЗрд░реА рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░реЗрдВрдЧреЗред

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

рдкреНрд░реЛрдЬреЗрдХреНрдЯ рдореЗрдВ, рд╕рд╛рдордЧреНрд░реА рдлрд╝реЛрд▓реНрдбрд░ рдмрдирд╛рдПрдБ рдФрд░ рдЗрд╕рдореЗрдВ svgdemo.htm рдФрд░ jquery-1.7.min.js рдлрд╛рдЗрд▓реЗрдВ рдЬреЛрдбрд╝реЗрдВред Svgdemo.html рдлрд╝рд╛рдЗрд▓ рдореЗрдВ, jquery-1.7.min.js рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдкрде рдХреЛ рдмрджрд▓реЗрдВ рддрд╛рдХрд┐ рддрдХрдиреАрдХреА рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдЗрд╕ рдкреНрд░рдХрд╛рд░ рд╣реЛ:
 <script src="jquery-1.7.min.js" type="text/javascript"></script> 

рдпрджрд┐ svgdemo.htm рдФрд░ jquery-1.7.min.js рдлрд╝рд╛рдЗрд▓реЛрдВ рдХреЗ рд▓рд┐рдП рдирдпрд╛ рд╣реИ рддреЛ рдХреЙрдкреА рдореЗрдВ рдЖрдЙрдЯрдкреБрдЯ рдФрд░ рдХреЙрдкреА рдореЗрдВ рдЖрдЙрдЯрдкреБрдЯ рдореЗрдВ рдПрдХреНрд╢рди рд╕реЗрдЯ рдХрд░рдирд╛ рднреА рдЖрд╡рд╢реНрдпрдХ рд╣реИред

рдЕрдм, WebBrowser рдирд┐рдпрдВрддреНрд░рдг рдХреЛ рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдХреЗ рдореБрдЦреНрдп рдкреГрд╖реНрда рдкрд░ рдЬреЛрдбрд╝реЗрдВ рддрд╛рдХрд┐ рдпрд╣ рд╕рднреА рд╕реНрдерд╛рди рдХреЛ рднрд░ рджреЗред рдкрд░рд┐рдгрд╛рдорд╕реНрд╡рд░реВрдк, XAML рдХреЛрдб рдЗрд╕ рддрд░рд╣ рджрд┐рдЦреЗрдЧрд╛:
 <phone:PhoneApplicationPage x:Class="IE9HTML.MainPage" xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" xmlns:phone="clr-namespace:Microsoft.Phone.Controls;assembly=Microsoft.Phone" xmlns:shell="clr-namespace:Microsoft.Phone.Shell;assembly=Microsoft.Phone" xmlns:d="http://schemas.microsoft.com/expression/blend/2008" xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006" mc:Ignorable="d" d:DesignWidth="480" d:DesignHeight="768" FontFamily="{StaticResource PhoneFontFamilyNormal}" FontSize="{StaticResource PhoneFontSizeNormal}" Foreground="{StaticResource PhoneForegroundBrush}" SupportedOrientations="Portrait" Orientation="Portrait" shell:SystemTray.IsVisible="True"> <!--LayoutRoot is the root grid where all page content is placed--> <Grid x:Name="LayoutRoot" Background="Transparent"> <Grid.RowDefinitions> <RowDefinition Height="Auto"/> <RowDefinition Height="*"/> </Grid.RowDefinitions> <!--ContentPanel - place additional content here--> <Grid x:Name="ContentPanel" Grid.Row="1" Margin="12,0,12,0"> <phone:WebBrowser Name="myBrowser" IsScriptEnabled="True" /> </Grid> </Grid> </phone:PhoneApplicationPage> 

рдкрд╣рд▓реА рдирдЬрд╝рд░ рдореЗрдВ, рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ, рд╡рд┐рдХрд╛рд╕ рдкреВрд░рд╛ рд╣реЛ рдЧрдпрд╛ рд╣реИ (рдЗрд╕ рддрдереНрдп рдХреЛ рдзреНрдпрд╛рди рдореЗрдВ рд░рдЦрддреЗ рд╣реБрдП рдХрд┐ рд╣рдордиреЗ рд╕рдорд╛рдкреНрдд рдПрдЪрдЯреАрдПрдордПрд▓ 5 рдЖрд╡реЗрджрди рд▓рд┐рдпрд╛ рдерд╛), рд▓реЗрдХрд┐рди рдЕрднреА рднреА рдПрдХ рд╕реВрдХреНрд╖реНрдо рдмрд┐рдВрджреБ рдмрдирд╛ рд╣реБрдЖ рд╣реИред рддрдереНрдп рдпрд╣ рд╣реИ рдХрд┐ рдПрдкреНрд▓рд┐рдХреЗрд╢рди рддреИрдирд╛рдд рд╣реЛрдиреЗ рдХреЗ рдмрд╛рдж рд╣рдорд╛рд░реА HTML рдФрд░ JS рдлрд╛рдЗрд▓ рд╡реЗрдмрдмреНрд░рд╛рдЙрдЬрд░ рдирд┐рдпрдВрддреНрд░рдг рдХреЗ рд▓рд┐рдП рдЙрдкрд▓рдмреНрдз рдирд╣реАрдВ рд╣реЛрдЧреА, рдХреНрдпреЛрдВрдХрд┐ рд╡реЗ рдЖрдЗрд╕реЛрд▓реЗрдЯреЗрдб рд╕реНрдЯреЛрд░реЗрдЬ рдореЗрдВ рдирд╣реАрдВ рд╣реЛрдВрдЧреЗред рдЗрд╕рд▓рд┐рдП, рдПрдкреНрд▓рд┐рдХреЗрд╢рди рд▓реЙрдиреНрдЪ рдХрд░рддреЗ рд╕рдордп, рд╣рдореЗрдВ рдЕрдкрдиреЗ HTML5 рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдХреЛ рдЖрдЗрд╕реЛрд▓реЗрдЯреЗрдб рд╕реНрдЯреЛрд░реЗрдЬ рдореЗрдВ рддреИрдирд╛рдд рдХрд░рдирд╛ рд╣реЛрдЧрд╛ред рдЗрд╕рдХреЗ рд▓рд┐рдП, рд╣рдо MSDN рд╕реЗ рдЙрджрд╛рд╣рд░рдг рдХреЛрдб рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░реЗрдВрдЧреЗ, рдЗрд╕рдореЗрдВ рдлрд╛рдЗрд▓реЛрдВ рдХреЗ рд╕реЗрдЯ рдХреЛ рдЕрдкрдиреЗ рд╕реНрд╡рдпрдВ рдореЗрдВ рдмрджрд▓реЗрдВрдЧреЗ:
 private void SaveFilesToIsoStore() { //These files must match what is included in the application package, //or BinaryStream.Dispose below will throw an exception. string[] files = { "content/svgdemo.htm", "content/jquery-1.7.min.js" }; IsolatedStorageFile isoStore = IsolatedStorageFile.GetUserStoreForApplication(); if (false == isoStore.FileExists(files[0])) { foreach (string f in files) { StreamResourceInfo sr = Application.GetResourceStream(new Uri(f, UriKind.Relative)); using (BinaryReader br = new BinaryReader(sr.Stream)) { byte[] data = br.ReadBytes((int)sr.Stream.Length); SaveToIsoStore(f, data); } } } } private void SaveToIsoStore(string fileName, byte[] data) { string strBaseDir = string.Empty; string delimStr = "/"; char[] delimiter = delimStr.ToCharArray(); string[] dirsPath = fileName.Split(delimiter); //Get the IsoStore. IsolatedStorageFile isoStore = IsolatedStorageFile.GetUserStoreForApplication(); //Re-create the directory structure. for (int i = 0; i < dirsPath.Length - 1; i++) { strBaseDir = System.IO.Path.Combine(strBaseDir, dirsPath[i]); isoStore.CreateDirectory(strBaseDir); } //Remove the existing file. if (isoStore.FileExists(fileName)) { isoStore.DeleteFile(fileName); } //Write the file. using (BinaryWriter bw = new BinaryWriter(isoStore.CreateFile(fileName))) { bw.Write(data); bw.Close(); } } 

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

рдЕрдм рд╕рдм рдХреБрдЫ рдХреЛрдб рд▓рд┐рдЦрдиреЗ рдХреЗ рд▓рд┐рдП рддреИрдпрд╛рд░ рд╣реИ рдЬреЛ рд╣рдорд╛рд░реЗ рдПрдЪрдЯреАрдПрдордПрд▓ 5 рдЕрдиреБрдкреНрд░рдпреЛрдЧ рдХреЗ рдЖрд░рдВрднреАрдХрд░рдг рдХреЛ рдкреВрд░рд╛ рдХрд░реЗрдЧрд╛:
 // Constructor public MainPage() { InitializeComponent(); this.Loaded += new RoutedEventHandler(MainPage_Loaded); } void MainPage_Loaded(object sender, RoutedEventArgs e) { SaveFilesToIsoStore(); myBrowser.Navigate(new Uri("content/svgdemo.htm", UriKind.Relative)); } 

IsolatedStorage рдХреЗ рд▓рд┐рдП рдлрд╝рд╛рдЗрд▓реЛрдВ рдХреЛ рд╕рд╣реЗрдЬреЗрдВ рдФрд░ WebBrowser рдирд┐рдпрдВрддреНрд░рдг рдореЗрдВ рдореБрдЦреНрдп HTML5 рдлрд╝рд╛рдЗрд▓ рдкреНрд░рджрд░реНрд╢рд┐рдд рдХрд░реЗрдВред рдПрдХ рдХрд╛рд░реНрдп рдЕрдиреБрдкреНрд░рдпреЛрдЧ рдирд┐рдореНрдирд╛рдиреБрд╕рд╛рд░ рд╣реИ:

рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдпрд╣ рдПрдХ рдорд╣рд╛рди рдЙрджрд╛рд╣рд░рдг рд╣реИред рдЗрд╕рдХреЗ рд▓рд┐рдП рдХреЛрд╕реНрддреНрдпрд╛ ( рдХрд┐рд╕рд┐рдХ ) рдХреЛ рдзрдиреНрдпрд╡рд╛рджред

рдЕрдЧрд░ рд╣рдореЗрдВ рдЕрдм рд╢реБрджреНрдз HTML5 + JS рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдирд╣реАрдВ рд╣реИ рдФрд░ рд╣рдо рдмреНрд░рд╛рдЙрдЬрд╝рд░ рдХреЗ рдирд┐рдпрдВрддреНрд░рдг рд╕реЗ рдкрд░реЗ рдЬрд╛рдирд╛ рдЪрд╛рд╣рддреЗ рд╣реИрдВ, рддреЛ рд╣рдо рд╡рд┐рдВрдбреЛрдЬ рдлреЛрди рдХреЗ рд▓рд┐рдП рддреАрд╕рд░реЗ рдкреНрд░рдХрд╛рд░ рдХреЗ HTML5 рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдмрд╛рдд рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ , рдЬреЛ рди рдХреЗрд╡рд▓ рдлреЛрди рдкрд░ рд╕реНрдерд╛рдиреАрдп рд╕рд╛рдордЧреНрд░реА рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддрд╛ рд╣реИ, рдмрд▓реНрдХрд┐ рд╕реБрд╡рд┐рдзрд╛рдУрдВ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╣реБрдП рд╡реЗрдмрд╕реЗрдВрдЯрд░ рдХреЗ рдирд┐рдпрдВрддреНрд░рдг рд╕реЗ рднреА рдЖрдЧреЗ рдЬрд╛рддрд╛ рд╣реИред рдкреНрд▓реЗрдЯрдлрд╛рд░реНрдореЛрдВ (рдЬреИрд╕реЗ рдПрдХреНрд╕реЗрд▓реЗрд░реЛрдореАрдЯрд░) ред рд╣рдо рдЕрдкрдиреЗ рджрдо рдкрд░ "рд╕реНрдХреНрд░реИрдЪ рд╕реЗ" рдРрд╕рд╛ рдЖрд╡реЗрджрди рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ, рдЬреЛ рд╣реЛ рд░рд╣рд╛ рд╣реИ (window.external.notify / ScriptNotify) рдХреЗ рдордВрдЪ рдХреЛ рд╕реВрдЪрд┐рдд рдХрд░рдиреЗ рдХреА рдХреНрд╖рдорддрд╛ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╣реБрдП рдпрд╛ рд╕реА # рдХреЛрдб (WebBrowser.InvitScript) рд╕реЗ рдПрдХ рдЬреЗрдПрд╕ рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдХреЛ рдХреЙрд▓ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред рд▓реЗрдХрд┐рди рдореМрдЬреВрджрд╛ рд╕рдорд╛рдзрд╛рди - PhoneGap рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛ рдмреЗрд╣рддрд░ рд╣реИред

рд▓реЗрдЦрди рдХреЗ рд╕рдордп, рд╕рдВрд╕реНрдХрд░рдг 1.3 рдЙрдкрд▓рдмреНрдз рдерд╛ред рдЖрдк рдЗрд╕реЗ рд╡реЗрдмрд╕рд╛рдЗрдЯ phonegap.com рдкрд░ рдбрд╛рдЙрдирд▓реЛрдб рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ, рд╡рд╣рд╛рдВ рднреА рдкреНрд░рд▓реЗрдЦрди рд╣реИред рдбрд╛рдЙрдирд▓реЛрдб рдХрд░рдиреЗ рдХреЗ рдмрд╛рдж, рд╕рдВрдЧреНрд░рд╣ рдХреЛ рдЕрдирдЬрд╝рд┐рдк рдХрд░реЗрдВ рдФрд░ рд╡рд┐рдВрдбреЛрдЬ рдлреЛрди рдлрд╝реЛрд▓реНрдбрд░ рд╕реЗ PhoneGapCustom.zip рдФрд░ PhoneGapStarter.zip рдлрд╝рд╛рдЗрд▓реЛрдВ рдХреЛ Visual Studio 2010 \ Templates \ рдлрд╝реЛрд▓реНрдбрд░ рдореЗрдВ рдХреЙрдкреА рдХрд░реЗрдВ, Visual Studio рдХреЗ рд╕рднреА рдЪрд▓рдиреЗ рд╡рд╛рд▓реЗ рд╕рдВрд╕реНрдХрд░рдгреЛрдВ рдХреЛ рдЕрдирд▓реЛрдб рдХрд░реЗрдВред рд╡рд┐рдЬрд╝реБрдЕрд▓ рд╕реНрдЯреВрдбрд┐рдпреЛ рд╢реБрд░реВ рдХрд░рдиреЗ рдХреЗ рдмрд╛рдж, рдПрдХ рдирдП рдкреНрд░рдХрд╛рд░ рдХреА рдкрд░рд┐рдпреЛрдЬрдирд╛ рджрд┐рдЦрд╛рдИ рджреЗрдЧреА:

рдЪрд▓рд┐рдП PhoneGapStarter рдкрд░ рдЖрдзрд╛рд░рд┐рдд рдПрдХ рдкреНрд░реЛрдЬреЗрдХреНрдЯ рдмрдирд╛рддреЗ рд╣реИрдВред рд╣рдо рдкрд░рд┐рдпреЛрдЬрдирд╛ рдХреА рд╕рдВрд░рдЪрдирд╛ рдХреЛ рджреЗрдЦрддреЗ рд╣реИрдВ:

рджрд░рдЕрд╕рд▓, PhoneGap рд╣реА JS рдлрд╝рд╛рдЗрд▓ phonegap-1.3.0.js рдФрд░ .NET CF рд▓рд╛рдЗрдмреНрд░реЗрд░реА WP7GapClassLib рд╣реИ рдЬреЛ рдЗрд╕ рдкрд░ рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛ рджреЗрддрд╛ рд╣реИред рдЗрд╕рдХреЗ рдЕрд▓рд╛рд╡рд╛, рдЕрдВрддрд░реНрдирд┐рд╣рд┐рдд WebBrowser рддрддреНрд╡ рдХреЗ рдмрдЬрд╛рдп, PGView рдирд┐рдпрдВрддреНрд░рдг рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рдЬреЛ рдЙрд╕реА WP7GapClassLib рдореЗрдВ рд╕реНрдерд┐рдд рд╣реИред

рд╕рд╣рд╛рдпрдХ рдлрд╝рд╛рдЗрд▓ ManifestProcessor.js рдХрд╛ рдЙрдкрдпреЛрдЧ GapSourceprise.xml рдлрд╝рд╛рдЗрд▓ рдХреЛ рдЕрдкрдбреЗрдЯ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рдЬрд┐рд╕рдореЗрдВ рд╕рд╛рдордЧреНрд░реА рдлрд╝рд╛рдЗрд▓реЛрдВ (рдкрд░рд┐рдпреЛрдЬрдирд╛ рдХреА www рдирд┐рд░реНрджреЗрд╢рд┐рдХрд╛) рдХреА рдПрдХ рд╕реВрдЪреА рд╣реЛрддреА рд╣реИ, рдЬреЛ рдХрд┐ рдЬреИрд╕рд╛ рдХрд┐ рд╣рдо рдкрд╣рд▓реЗ рд╕реЗ рд╣реА рдкрд┐рдЫрд▓реЗ рдЙрджрд╛рд╣рд░рдг рд╕реЗ рдЬрд╛рдирддреЗ рд╣реИрдВ, рдХреЛ рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдмрдирд╛рдиреЗ рд╕реЗ рдкрд╣рд▓реЗ рдЖрдЗрд╕реЛрд▓реЗрдЯреЗрдб рд╕реНрдЯреЛрд░реЗрдЬ рдореЗрдВ рддреИрдирд╛рдд рдХрд░рдирд╛ рд╣реЛрдЧрд╛ред

рд╣рдо рдПрдХ рд╕рд░рд▓ рдПрдкреНрд▓рд┐рдХреЗрд╢рди рд▓рд┐рдЦреЗрдВрдЧреЗ рдЬреЛ рдПрдХреНрд╕реЗрд▓реЗрд░реЛрдореАрдЯрд░ рдбреЗрдЯрд╛ рдХреЛ рдкрдврд╝реЗрдЧрд╛ рдФрд░ рдЗрд╕реЗ рдкреГрд╖реНрда рдкрд░ рдкреНрд░рджрд░реНрд╢рд┐рдд рдХрд░реЗрдЧрд╛ред рдРрд╕рд╛ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, index.html рдлрд╝рд╛рдЗрд▓ рдХреЗ рдЯреИрдЧ рдХреА рд╕рд╛рдордЧреНрд░реА рдХреЛ рдирд┐рдореНрди рдХреЗ рд╕рд╛рде рдмрджрд▓реЗрдВ:
 <h1>Accelerometer sample</h1> <div id="valueX"></div> <div id="valueY"></div> <div id="valueZ"></div> 

рдЕрдм рдЖрдкрдХреЛ рдЗрд╕ рдкреГрд╖реНрда рдкрд░ рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдХреЛ рдЕрдкрдиреЗ рд╕реНрд╡рдпрдВ рдХреЗ рд╕рд╛рде рдмрджрд▓рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ, рдЬреЛ рдПрдХреНрд╕реЗрд▓реЗрд░реЛрдореАрдЯрд░ рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░рддрд╛ рд╣реИ (рдХреЛрдб рдбреЗрд╡рд┐рдб рд░реМрд╕реЗрдЯ рджреНрд╡рд╛рд░рд╛ рд▓реЗрдЦ рд╕реЗ рд▓рд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ, рдЯреНрдпреВрдЯреЛрд░рд┐рдпрд▓: рд╡рд┐рдВрдбреЛрдЬ рдлреЛрди рдкрд░ рдПрдЪрдЯреАрдПрдордПрд▓ 5 рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдХреИрд╕реЗ рдмрдирд╛рдПрдВ рдлреЛрдирдЧреИрдк рдХреЗ рд▓рд┐рдП рдзрдиреНрдпрд╡рд╛рдж) :
 <script type="text/javascript"> document.addEventListener("deviceready", onDeviceReady, false); // variable to output the current x, y & z values of the accelerometer var valueX; var valueY; var valueZ; // when PhoneGap tells us everything is ready, start watching the accelerometer function onDeviceReady() { valueX = document.getElementById("valueX"); valueY = document.getElementById("valueY"); valueZ = document.getElementById("valueZ"); startWatch(); } // start monitoring the state of the accelerometer function startWatch() { var options = { frequency: 500 }; navigator.accelerometer.watchAcceleration(onSuccess, onError, options); } // if the z-axis has moved outside of our sensitivity threshold, move the aarvark's head in the appropriate direction function onSuccess(acceleration) { valueX.innerHTML = "X: " + acceleration.x; valueY.innerHTML = "Y: " + acceleration.y; valueZ.innerHTML = "Z: " + acceleration.z; } function onError() { alert('onError!'); } </script> 

рджрд░рдЕрд╕рд▓, рдХреЗрд╡рд▓ рдПрдХ рдЪреАрдЬ рдХреА рд╡реНрдпрд╛рдЦреНрдпрд╛ рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ рдЬреЛ рдирд╛рд╡рд┐рдХ рд╡рд╕реНрддреБ рд╣реИ, рдЬрд┐рд╕рдиреЗ рд╣рдореЗрдВ рдПрдХреНрд╕реЗрд▓реЗрд░реЛрдореАрдЯрд░ рд╕реЗ рдХрдиреЗрдХреНрдЯ рдХрд░рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреА рд╣реИред рдпрд╣ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ PhoneGap рдХрд╛ рд╣рд┐рд╕реНрд╕рд╛ рд╣реИред рдЖрдк PhoneGap.com рдкрд░ PhoneGap API рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдЕрдзрд┐рдХ рдкрдврд╝ рд╕рдХрддреЗ рд╣реИрдВред

рдпрд╣ рдХреЗрд╡рд▓ рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдЪрд▓рд╛рдиреЗ рдФрд░ рдпрд╣ рд╕реБрдирд┐рд╢реНрдЪрд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдмрдирд╛ рд░рд╣рддрд╛ рд╣реИ рдХрд┐ рдпрд╣ рдХрд╛рдо рдХрд░рддрд╛ рд╣реИ:

рдкреНрд▓реЗрдЯрдлрд╝реЙрд░реНрдо рдХреА рдХреНрд╖рдорддрд╛рдУрдВ рдХреЗ рдЙрджрд╛рд╣рд░рдг рдХреЗ рд░реВрдк рдореЗрдВ, рдореИрдВ рдбреЗрд╡рд┐рдб рд░рд╛рдЙрд╕реЗрдЯ рджреНрд╡рд╛рд░рд╛ рдЙрд╕реА рд▓реЗрдЦ рд╕реЗ HTML5 рдЧреЗрдо рдХрд╛ рд╕реНрдХреНрд░реАрдирд╢реЙрдЯ рджреЗрдирд╛ рдЪрд╛рд╣рддрд╛ рд╣реВрдВ:


рдкрд░рд┐рдпреЛрдЬрдирд╛ рдХреЗ рдЙрджрд╛рд╣рд░рдг :
MyYandex
рдПрд╕рд╡реАрдЬреА рдбреЗрдореЛ
рдлреЛрдирдЧреИрдк рдПрдХреНрд╕реЗрд▓реЗрд░реЛрдореАрдЯрд░ рдирдореВрдирд╛

рдЙрдкрдпреЛрдЧреА рд▓рд┐рдВрдХ:
рд▓рд╛рдЗрд╡ рдЯрд╛рдЗрд▓реНрд╕ рдФрд░ рдмреИрдХрдЧреНрд░рд╛рдЙрдВрдб рдПрдЬреЗрдВрдЯ
MSDN рдкрд░ рд╡рд┐рдВрдбреЛрдЬ рдлреЛрди рд╡рд┐рдХрд╛рд╕ рдХреЗрдВрджреНрд░ (рд╡рд┐рдВрдбреЛрдЬ рдлреЛрди рдХреЛрд░реНрд╕)
рд╡рд┐рдВрдбреЛрдЬ рдлреЛрди рдПрд╕рдбреАрдХреЗ 7.1
рд░реВрд╕реА рдореЗрдВ рд╡рд┐рдВрдбреЛрдЬ рдлреЛрди рд╡рд┐рдХрд╛рд╕ рдордВрдЪ

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


All Articles