2017-02-13 5 views
1

Windows-10 UWP WebviewWindows-10 UWP Webview lokale URL Probleme

Ich habe die zwei HTML-Dateien in einem Ordner www unter Vermögen (Assets/www/xxx.html) in einem 10-Windows-UWP befindet, beide Dateien in VS 2015 werden auf das Ausgabeverzeichnis kopiert.

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> 

Das Webview-Objekt wird als unter

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

Und die Index-Seite von

/// 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"); 

der Seite geladen und richtig angezeigt wird geladen, aber es wird die nicht angezeigt werden verknüpfte 'submit.html' Seite, es ist nur leer.

Wenn ich das Navigationsereignis abfangen, tritt es auf, aber es scheint ein GUID vorangestellt zu sein, wie unten gezeigt.

enter image description here Ich habe Pfade zu absoluten usw. geändert und lese die Dokumente im Detail, aber ich verstehe nicht, warum das nicht funktioniert.

Ideen Bitte Jungs ...

+0

Wenn submit im selben Ordner wie index.html ist, dann ändern Sie Ihre index.html um als ms-appx-web anzuzeigen: //Submit.html und es sollte funktionieren. – AVK

+0

Alle Kombinationen von Datei, URL usw. wurden getestet. Alle sind im Navigationsereignis sichtbar, es wird jedoch keine Seite angezeigt. Die beiden Dateien funktionieren einwandfrei in allen getesteten Browsern - ich kann nur eine verlinkte Seite in der Webansicht anzeigen. Alle meine anderen Funktionen auf dem DOM funktionieren gut. –

Antwort

1

Wenn ich Falle der Navigation Ereignis es tritt aber scheint durch eine GUID wie unten gezeigt

Die „GUID“ ist der Paketname vorangestellt werden der aktuellen App ist es der Standardwert von Behörde Teil URI schemes. Wenn Sie also nur zu einer anderen Seite navigieren möchten, ist dieser absolute Pfad richtig. Sie können Code NavigateWebview(@"ms-appx-web://{your package name}/Assets//www/submit.html");

Die Seite wird geladen und richtig angezeigt wird testen, aber es wird die verknüpfte ‚submit.html‘ Seite nicht angezeigt werden, es ist nur leere

Für Ihr Problem, ändere ich die form Methode zu bekommen, wird es funktionieren.

<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 hat zwei Methoden für die Formulardaten submiting. Get sendet Formulardaten über eine URL-Zeichenfolge, Post sendet Formulardaten über den Server. Meiner Meinung nach Post-Post-Daten zuerst und dann navigieren, und die Daten werden auf der Serverseite behandelt. Ich habe keine Post-Form-Daten gesehen, die auf einer HTML-Seite empfangen und behandelt wurden, also denke ich, dass Sie keine post-Methode verwenden mussten. Für Get-Methode können Sie Daten erhalten und sie in Javascript, here ist, wie zu tun ist.

+0

Ja, Sie haben eine Änderung vorgenommen, um dieses Problem zu beheben. Darf ich fragen, wo Sie diese Informationen abgelegt haben, da ich dies in den MS-Dokumenten nicht als Problem erkannt habe? –

+0

@SarahT, Das ist eigentlich nicht das relative Wissen von uwp. Es tut mir leid, dass ich diese Informationen auch nicht in uwp-Dokumenten gesehen habe. Nur nach dem HTML [form] (http: // html.com/attributes/form-method /) Tag-Definition, dass Post serverseitige Unterstützung erfordert und möglicherweise hatte ich Erfahrungen beim Schreiben von Code Deal mit Post-Anforderungen Code hinter in einem MVC-Projekt. –

+0

Vielen Dank - Sie waren eine große Hilfe. –