簡體   English   中英

需要默認的搜索引擎來控制Web瀏覽器

[英]Need a default search engine for web browser control

我已經使用Web瀏覽器控件為Windows Phone 7創建了Web瀏覽器應用程序。 我想添加一個默認的搜索引擎(即用於Google搜索或Bing搜索的textBox)。 而且,如果用戶鍵入任何內容(諸如技術之類的字眼),則搜索應重定向到上述默認搜索引擎。 誰能幫我這個??? 我用於輸入URL的文本框被命名為“ UrlTextBox”,而我的Web瀏覽器控件被命名為“瀏覽器”。 用於搜索引擎的文本框名為“ SearchTextBox”。 在此先感謝您的辛苦!!!

    public void browsers_Navigating(object sender, NavigatingEventArgs e)
    {
        UrlTextBox.Text = e.Uri.ToString();
        if (navigationcancelled)
        { e.Cancel = true; }

        SearchEngine[] availableSearchEngines = new SearchEngine[]
        {new SearchEngine(){ Name = "Google", URLPattern = "http://www.google.com/search?q={0}" }};
         new SearchEngine(){ Name = "Yahoo", URLPattern = "http://search.yahoo.com/search?p={0}" };
         new SearchEngine(){ Name = "Bing", URLPattern = "http://www.bing.com/search?q={0}" };
    }

UrlTextBox-:

    private void UrlTextBox_KeyDown(object sender, KeyEventArgs e)
    {
        if (e.Key == Key.Enter)
        {
            Uri url;
            if (Uri.TryCreate(UrlTextBox.Text, UriKind.Absolute, out url))
            {
                this.urls[this.currentIndex] = UrlTextBox.Text;
                this.browsers[this.currentIndex].Navigate(url);
            }

            if (!Uri.TryCreate(UrlTextBox.Text, UriKind.Absolute, out url))
            {
                SearchEngine defaultSearchEngine = availableSeachEngines[0];
                String URL = String.Format(defaultSearchEngine.URLPattern, UrlTextBox.Text);
            }

            else
            {
                Navigate(UrlTextBox.Text);
            }
        }
    }

但是有一個錯誤消息說“ availableSeachEngines” --->在當前上下文中不存在該名稱availableSeachEngines

現在,我在程序中使用了上面的代碼,並在其中添加了Muaz Othman代碼。 但是它對我不起作用,並顯示錯誤。 我認為其中存在一些錯誤。 任何人都可以糾正它嗎? 提前致謝!!!

您可以創建一個這樣的類:

public class SearchEngine {

    public string Name {set; get}
    public string URLPattern { get; set;}

    public override string ToString(){
        return Name;
    }
}

在您的代碼中,您可以具有以下數組:

SearchEngine[] availableSearchEngines = new SearchEngine[]{
    new SearchEngine(){ Name = "Google", URLPattern = "http://www.google.com/search?q={0}" };
    new SearchEngine(){ Name = "Yahoo", URLPattern = "http://search.yahoo.com/search?p={0}" };
    new SearchEngine(){ Name = "Bing", URLPattern = "http://www.bing.com/search?q={0}" };
}

但是在您的代碼中,您應該只有一個SearchEngine對象:

SearchEngine defaultSearchEngine;

因此,當用戶輸入文本並選擇“開始”時,您將檢查輸入的文本是否為有效的URL(可能使用正則表達式),如果不是,則執行以下操作:

String url = String.Format(defaultSearchEngine.URLPattern, SearchTextBox.Text);

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM