2013-08-28 95 views
0

我在我的應用程序中有幾個html頁面。我將這些html文件命名爲f1.html,f2.html,f3.html,... f454.html。所以,我想通過用戶偏好來顯示這些文件。因此,我使用NuGet和名稱爲webview.xaml的xaml頁面在CustomMessageBox中創建了一個文本框和按鈕。如果用戶在文本框中輸入3,則應在webview.xaml中打開f3.html。wp8:在webBrowser中點擊按鈕打開htm頁面?

我不知道如何編碼。最好的答案將非常感謝。 C#代碼我直到現在[UPDATE];

TextBox getFileNo = new TextBox(); 
getFileNo.Height = 72; 
getFileNo.Width = 150; 
getFileNo.MaxLength = 3; 
TextBox getHashNo = new TextBox(); 
getHashNo.Height = 72; 
getHashNo.Width = 150; 
getHashNo.MaxLength = 3; 

string showFile; 
showFile = getFileNo.Text; 
string hashId; 
hashId = getHashNo.text; 
NavigationService.Navigate(new Uri("/webview.xaml?Page=" + site, UriKind.Relative)); 

在webview.xaml:

 protected override void OnNavigatedTo(NavigationEventArgs e) 
    { 
     base.OnNavigatedTo(e); 
     if (NavigationContext.QueryString.ContainsKey("Page")) 
     { 
      var page = NavigationContext.QueryString["Page"]; 
      browser.Navigate(new Uri("/f" + page + ".html#" + hashId, UriKind.Relative)); 
     } 
    } 

回答

0

您可以導航到webview.xaml頁面傳遞與所需的HMTL文件的查詢字符串:

NavigationService.Navigate(new Uri(String.Format("/webview.xaml?Page={0}&id={1}", showFile, hashId), UriKind.Relative)); 

在你的WebView .xaml頁面,您可以覆蓋OnNavigatedTo方法來檢查傳遞的頁面並在網頁中打開它瀏覽器:

protected override void OnNavigatedTo(NavigationEventArgs e) 
{ 
    base.OnNavigatedTo(e); 

    if (NavigationContext.QueryString.ContainsKey("Page") && NavigationContext.QueryString.ContainsKey("id")) 
    { 
     var page = NavigationContext.QueryString["Page"]; 
     var hashId = NavigationContext.QueryString["id"]; 

     yourWebBrowser.Navigate(new Uri(String.Format("/f{0}.html#{1}", page, hashId), UriKind.Relative)); 
    } 
} 

請參閱從How to perform page navigation on Windows PhonePassing paramenters節以獲取更多信息。

+0

精彩的一段代碼。還有一個疑問。我想導航到我的應用程序中聲明的'id'。例如'f1.html#34'。這個怎麼做 ? –

+0

我想你可以將它作爲查詢字符串傳遞:'NavigationService.Navigate(new Uri(「/ webview.xaml?Page =」+ showFile +「&id =」+ yourId,UriKind.Relative));' – anderZubi

+0

'&id ='不工作 –