Ich entwickle eine uwp App mit C#. Ich habe eine Anforderung zum Herunterladen der Ressourcen einer Website, einschließlich Bilder, Skripte und HTML-Seiten, so dass es offline angezeigt werden kann. Ich lade die Ressourcen unter dem lokalen Ordner herunter und speichere sie. Aber wenn ich versuche, auf sie zuzugreifen (aus einem Javascript-Skript), wird das Ereignis UnsupportedUriSchemeIdentified ausgelöst.ms-appdata scheme triggert Nicht unterstütztesUriSchemeIdentified in UWP WebView
ist hier ein Stück Javascript-Code, der die Ressourcen
function startSth(sth,tracking){
sthAPI.SetSth(sth, tracking);
var sthUrl = sthBaseUrl + sth.Href;
if(sth.Parameters !== undefined && sth.Parameters !== null && sth.Parameters !== ""){
if(sth.Parameters.indexOf('?')===0) sth.Parameters = sth.Parameters.substring(1);
sthUrl += "?"+sth.Parameters;
}
if (urlParams != "")
{
sthUrl += (sthUrl.indexOf('?') === -1) ? '?' : '&';
sthUrl += urlParams;
}
document.getElementById('mainFrame').src = sthUrl;
}
Dieser Code eine HTML-Seite versucht, verwendet in lokalen Speicher heruntergeladen zuzugreifen und sie als Quelle eines IFrame gesetzt. Die sthBaseUrl Variable wird früher von C# Code geliefert und ist so etwas wie ms-appdata:///local/folder/
Von meinem Verständnis des ms-appdata
Schema ist eine der unterstützten Systeme der UWP WebView. Ich habe Beispiele gesehen, wo es verwendet wird, um zu Inhalten wie diesem zu navigieren webView1.Navigate("ms-appdata:///local/intro/welcome.html");
Ich verstehe nicht, warum das Ereignis ausgelöst wird.
Das Javascript ist nicht von mir geschrieben und ist Teil eines größeren komplexeren Systems, so dass ich keine direkte Kontrolle habe, es geändert zu haben (ohne ein sehr überzeugendes Argument).
Kennt jemand eine Möglichkeit, dieses Problem zu umgehen und das JavaScript die Seite (und andere Ressourcen) aus dem lokalen Speicher laden lassen?
Wenn es keinen solchen Weg gibt, wie kann das Javascript geändert werden, um dies zu erreichen?
Dies löst das unsupportedUriSchemeIdentified-Ereignis aus.
Ich glaube nicht, dass Sie das ms-appdata Schema aus einer Webansicht verwenden können. Nur beim Laden über die C# apis der Steuerung. Es gibt noch weitere Einschränkungen, so wie alle Dateien in bestimmten Fällen im selben Ordner liegen müssen. und lokale URLs funktionieren nicht, wenn Sie den Webview über 'NavigateToString 'geladen haben. Viele seltsame Fälle. Leider erinnere ich mich nicht an die genauen Gründe, denn es war vor über einem Jahr ... –