2

そこで、ユーザー入力からURIを作成したいと思います。テキストボックス、[OK]ボタン、Webブラウザコントロールがあります。

ユーザーは希望のWebアドレスを入力し、ボタンをクリックしてgetUriメソッドを起動します。

私はこのようなものを作成しようとしました:

private void ok_tap(object sender, System.Windows.Input.GestureEventArgs e)
{
    Uri address = new Uri(AdressBox.Text, UriKind.Absolute);
    web.Navigate(address);
}

ああ、それはまったく問題なく動作します。ただし、ユーザーが「http://」でアドレスを入力した場合のみ。問題は、リンク全体を書き込む人がいないことと、「google.com」アプリだけでクラッシュすることです。

ユーザー入力に「http」のようなものがあるかどうかを確認して手動で追加することはできますが、車輪の再発明を試みているように感じます。

4

2 に答える 2

4

UriBuilderクラスを使用します。そのStringコンストラクターのデフォルトはHTTPprotocolです。

private void ok_tap(object sender, System.Windows.Input.GestureEventArgs e)
{
    Uri address = new UriBuilder(AdressBox.Text).Uri;
    web.Navigate(address);
}
于 2013-01-14T16:04:32.323 に答える
0

URIの一部は使用されるプロトコルであるため、ユーザーから指定されていない場合は何かを行う必要があります。検証のアイデアは適切だと思われます。他に何も指定されていない場合は、「http://」を試してください。ドメインサフィックスがない場合は、「。com、.org、.net」も追加できます。それは車輪の再発明ではなく、必要な場所で円を使用しているだけです。いずれにせよ、不完全なユーザー入力によるアプリのクラッシュを防ぐ必要があります。

于 2013-01-14T16:09:07.263 に答える