ich habe gerade einen „General“ als Argument in JavaScript.
Ich bin neugierig, woher weißt du, dass du einen "General" hast, hast du deine message
auf deinem HTML ausgegeben? Es sieht so aus, als ob Sie einen Dateipfad zum background
festgelegt haben. Ein Problem hierbei ist, ob der Dateipfad in einer UWP-App legal ist, da die UWP-App in Sandbox funktioniert. Einige Pfade, die in klassischen Desktop-Apps verwendet werden, können nicht verwendet werden UWP.
Ich kann nicht reproduzieren Ihre Problembasis auf Ihrem Posed Code sowohl in UWP App und WP8.1 App, ich nahm nur an, dass Sie ein Bild auf den Hintergrund eines Elements festlegen möchten. Hier ist ein Beispiel:
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8" />
<title>WebViewInvoke</title>
<link href="css/default.css" rel="stylesheet" />
<script type="text/javascript">
function handleMessage(message) {
var element = document.getElementById("textbody");
element.style.background = message;
}
</script>
</head>
<body id="textbody" style="color:black; background:url('Assets/1.jpeg')">
<div>Content goes here!</div>
<script src="js/main.js"></script>
</body>
</html>
Dies ist meine HTML-Datei und wie man sehen kann ich die Funktion handleMessage
innerhalb dieser HTML-Datei aufrufen, ist es das gleiche, wenn Sie diese Funktion in die js-Datei setzen. So
wenn InvokeScriptAsync
Methode aufrufen, können wir Uri
nutzen das Image des Pfad zu erhalten, wie folgend:
string[] specs = { "url('Assets/2.jpeg')" };
await webView.InvokeScriptAsync("handleMessage", specs);
Grundsätzlich ist die Hauptidee dabei ist, dass Sie versuchen können, Uri
zu verwenden, um Ihre path
zu ersetzen, und meine Bilder werden im Ordner Assets
des Projekts gespeichert. Wenn Sie hier eine Frage haben, aktualisieren Sie bitte Ihren Code und hinterlassen Sie einen Kommentar.
können Sie eval aufrufen. Etwas wie: 'InvokeScriptAsync (" eval ", neu [] {" handleMessage ('background =/path;') "};' –
Ich bekomme jetzt auch eine "allgemeine" Zeichenfolge als Parameter auf dem Desktop. – ger18s