2016-02-25 31 views
7

Ho un requisito in cui è necessario caricare un file html dalla cartella dei dati dell'app in xaml WebView in UWP. Il file HTML fa anche riferimento a diversi file Js in un'altra cartella ("99/js /"). Qualcuno con conoscenza UWP mi guida. Grazie in anticipo Sto usando il seguente codice, Browser è la mia WebView.Caricamento di file HTML in WebView in xaml in UWP dalla cartella locale dati app

var Uri = new Uri("ms-appdata:///Local/Downloads/99/index.html"); 
    Browser.Navigate(Uri); 

mia struttura di cartelle nella cartella 99 è: udapte
sto cercando file html carico collegato a WebView che non sta caricando stesso file HTML è carico con URL del server.

+2

Si prega di chiarire il problema specifico o fornire ulteriori dettagli per evidenziare esattamente quello che ti serve. Come è attualmente scritto, è difficile dire esattamente cosa stai chiedendo. –

+0

Il file HTML non si carica in modalità offline nella vista Web. Puoi vedere la nostra struttura delle cartelle in alto Sto cercando di caricare index.html – arun

risposta

9

Per caricare la index.html in WebView in modalità offline, è necessario assicurarsi che tutte le risorse utilizzate in index.html si trovano correttamente nella app di LocalFolder. E tutti questi contenuti devono essere collocati in una sottocartella sotto la cartella locale.

Rif Osservazioni in WebView class:

Per caricare contenuti non compressi e in chiaro da LocalFolder o TemporaryFolder memorizza dati dell'app, usa il metodo di Navigate con un Uri che utilizza la ms-appdata scheme. Il supporto WebView per questo schema richiede di inserire il contenuto in una sottocartella nella cartella locale o temporanea. Abilita la navigazione verso gli URI come ms-appdata: /// local/cartella/file.html e ms-appdata: /// temp/cartella/file.html. (Per caricare i file compressi o crittografati, vedere NavigateToLocalStreamUri.)

Per esempio, ho creato un semplice index.html che utilizzano index.js nella cartella js e index.css nella cartella css.

index.html

<!DOCTYPE html> 
<html> 
<head> 
    <title></title> 
    <meta charset="utf-8" /> 
    <script src="js/index.js"></script> 
    <link href="css/index.css" rel="stylesheet" /> 
</head> 
<body> 
    <button id="myBtn">Click Me!</button> 
    <div id="myDiv"></div> 
</body> 
</html> 

index.js indice

window.onload = function() { 
    document.getElementById("myBtn").onclick = function() { 
     document.getElementById("myDiv").innerHTML += "You have clicked once! <br>"; 
    } 
} 

.css

#myDiv { 
    border: 2px dotted black; 
    width: 500px; 
    height: 500px; 
} 

Si trovano in localfolder di mia app come segue:
enter image description here

Poi nel mio UWP app, ho usato seguente codice:

<Grid Background="{ThemeResource ApplicationPageBackgroundThemeBrush}"> 
    <WebView x:Name="Browser" /> 
</Grid> 
protected override void OnNavigatedTo(NavigationEventArgs e) 
{ 
    Browser.Navigate(new Uri("ms-appdata:///local/Downloads/index.html")); 
} 

Questo funziona bene :
enter image description here
Quindi, se il file html non viene caricato, controlla la cartella locale dell'app e assicurati che il file html e le risorse siano posizionati nel posto giusto.

sul computer locale, i file di dati sono memorizzati nella cartella

% USERPROFILE% \ AppData \ Local \ Packages \ {PackageId}

che di solito è C: \ Users \ {UserName} \ AppData \ Local \ Packages \ {PackageId}, dove {UserName} corrisponde al nome utente di Windows e corrisponde all'identificatore del pacchetto dell'applicazione Windows Store che è possibile trovare come Package family name nella scheda Packaging del file manifest dell'app. La cartella LocalState all'interno della cartella del pacchetto è LocalFolder.

Per l'emulatore mobile, è possibile utilizzare alcuni strumenti come IsoStoreSpy o Windows Phone Power Tools per verificare la cartella locale.

Se è possibile caricare il file html, ma mancano alcune risorse come manca lo stile css, potrebbe essere necessario controllare il codice html e assicurarsi che i riferimenti siano corretti.

+0

Puoi anche posizionare i file in [altre posizioni] (http://stackoverflow.com/a/28227571/426.227). Ma questo approccio non sembra funzionare per xml con i file xsl ... – testing