WebViewコントロールを使用すると、Webブラウザを実装することができます。
WebViewコントロールに表示するページ(URL)は、Sourceプロパティで指定します。
戻れるページがあるかどうかはCanGoBackプロパティ、進めるページがあるかどうかはCanGoForwardプロパティがTrueかどうかを確認します。
以下はWebViewコントロールを配置するXAMLの例です。
一番上にはSearchBarコントロール、次にWebViewコントロール、一番下にButtonコントロールを2つ(戻る、進む)配置しています。
[<]ボタンはWebViewのCanGoBackプロパティと、[>]はCanGoForwadプロパティをバインディングし、戻るページがある場合と、進むページがある場合に押せるようになります。
<StackLayout Margin="10,30,10,10">
<SearchBar x:Name="searchBar" Placeholder="Enter url" />
<WebView x:Name="webView"
VerticalOptions="FillAndExpand"
Source="https://www.xamarin.com/" />
<StackLayout Orientation="Horizontal"
BindingContext="{x:Reference webView}">
<Button x:Name="btnBack" Text="<"
IsEnabled="{Binding CanGoBack}" />
<Button x:Name="btnForawd" Text=">"
IsEnabled="{Binding CanGoForward}" />
</StackLayout>
</StackLayout>
次に、それぞれのイベントを使用する例をみていきましょう。
検索用の入力エリアではSearchBarのボタンが押されたときのイベントで、入力されたURLへ移動できるようにしています。入力されたURLはWebViewコントロールのSourceプロパティに設定します。
ページが遷移するときは、Navigatingというイベントが発生します。ページ遷移中はSearchBarコントロールが使用できないようにIsEnabledプロパティにfalseを設定しています。ページ遷移が完了したときはNavigatedイベントが発生するのでIsEnabledイベントにtrueを設定して再び使用できるようにしています。
[<]ボタンがクリックされたときは、WebViewコントロールのGoBack()メソッドを実行し、[>]ボタンが句陸されたときはGoForward()メソッドを実行するようにしています。
public MainPage()
{
InitializeComponent();
// [検索]ボタンタップ時の処理
searchBar.SearchButtonPressed += (sender, e) =>
{
// 指定されたURLを開く
webView.Source = searchBar.Text;
};
// ページ遷移中の処理
webView.Navigating += (sender, e) =>
{
searchBar.IsEnabled = false;
};
// ページ遷移完了時の処理
webView.Navigated += (sender, e) =>
{
searchBar.IsEnabled = true;
};
// [<]ボタンクリック時の処理
btnBack.Clicked += (sender, e) =>
{
webView.GoBack();
};
// [>]ボタンクリック時の処理
btnForawd.Clicked += (sender, e) =>
{
webView.GoForward();
};
}


コメント