2017-02-13 32 views
1

的Windows 10 UWP網頁視圖的Windows 10 UWP網頁視圖本地URL問題

我有位於WWW文件夾的資產(資產/ WWW/xxx.html)下在Windows 10 UWP兩個HTML文件,在VS兩個文件2015設置爲複製到輸出目錄。

index.html 

<!DOCTYPE html> 
<html lang="en"> 
<head> 
    <meta charset="utf-8"> 
    <title>Simple Script</title> 
</head> 

<body> 
    <form action="submit.html" method="post"> 
    Data:<input type="text" name="somedata" > <br> <br> 
    <input type="submit" value="Submit" > 
    </form> 
</body> 
</html> 

and submit.html 

<!DOCTYPE html> 
<html lang="en"> 
<head> 
    <meta charset="utf-8"> 
    <title>Dummy Submission</title> 
</head> 

<body> 
    <h2> Your data has been submitted - Thank You. </h2> 
</body> 
</html> 

web視圖對象在XMAL embbeded如下

<WebView x:Name="WebBrowser" HorizontalAlignment="Left" VerticalAlignment="Top" Height="532" Width="1014" NavigationStarting="WebBrowser_NavigationStarting"/> 

和索引頁由

/// Helper to perform the navigation in webview 
    /// </summary> 
    /// <param name="url"></param> 
    private void NavigateWebview(string url) 
    { 
     try 
     { 
      Uri targetUri = new Uri(url); 
      WebBrowser.Navigate(targetUri); 
     } 
     catch (FormatException myE) 
     { 
      // Bad address 
      WebBrowser.NavigateToString(String.Format("<h1>Address is invalid, try again. Details --> {0}.</h1>", myE.Message)); 
     } 
    } 


NavigateWebview(@"ms-appx-web:///Assets/www/index.html"); 

該頁面加載和顯示正確加載,但它不會顯示鏈接'submit.html'頁面,它只是空白。

如果我陷阱導航事件它確實發生,但似乎以GUID爲前綴,如下所示。

enter image description here 我已經改變了絕對路徑等,並詳細閱讀文檔,但我不明白爲什麼這不起作用。

想法,請傢伙...

+0

如果提交與index.html位於同一文件夾中,那麼將您的index.html更改爲ms-appx-web://Submit.html,它應該可以工作。 – AVK

+0

嘗試了文件,URL等的所有組合 - 所有這些都在導航事件中可見,但沒有顯示任何頁面。這兩個文件在所有測試過的瀏覽器上都能正常工作 - 我只是無法在Web視圖中顯示鏈接的頁面。我在DOM上的所有其他功能都可以正常工作。 –

回答

1

如果我陷阱確實出現了,但出現在導航事件由一個GUID下面

的「GUID」前綴爲展現的是包名當前應用的默認值爲權威部分URI schemes。所以如果你只想導航到另一個頁面,這個絕對路徑是正確的。您可以通過代碼NavigateWebview(@"ms-appx-web://{your package name}/Assets//www/submit.html");

的頁面加載和顯示正確測試,但它不會顯示鏈接「submit.html頁面,它只是空白

對於您的問題,我改變form方法到得到,它會工作。

<form action="submit.html" method="get" id="myform"> 
    Data:<input type="text" name="somedata"> <br> <br> 
    <input type="submit" value="Submit"> 
</form> 
<a href="submit.html">Please Click Me to jump</a> 

form有兩種提交表單數據的方法。獲取通過URL字符串發送表單數據,發佈表單數據通過服務器。在我看來,首先發布方法發佈數據,然後導航,並在服務器端處理數據。我沒有看到發佈的表單數據在HTML頁面上接收和處理,所以我想你不需要使用post方法。對於get方法你可以接收數據並在javascript中處理它們,here是怎麼做的。

+0

是的,你是正確的改變,以解決這個問題,我可以問你在哪裏傾斜這些信息,因爲我沒有發現這是MS文檔中的問題。 –

+0

@SarahT,這實際上並不是uwp的相關知識。對不起,我也沒有看到uwp相關文件上的這些信息。只需根據HTML [form](http:// html。com/attributes/form-method /)標籤定義,這個帖子需要服務器端的支持,可能我有編寫代碼處理MVC項目背後的需求代碼的經驗。 –

+0

許多感謝 - 你一直很好的幫助。 –