在WebView UWP中调用Javascript

在WebView UWP中调用Javascript,webview,uwp,Webview,Uwp,我想将以下内容添加到我的webview <html> <body> <h1>My First Heading</h1> <div id="mydiv" style="width: 100%; height: 100%;" ></div> <script src="https://mydomain/Embed.js" type="t

我想将以下内容添加到我的webview

    <html>
<body>
<h1>My First Heading</h1>
 <div id="mydiv" style="width: 100%; height: 100%;" ></div> 
    <script src="https://mydomain/Embed.js" type="text/Javascript">
        </script>
</body>
</html>

我的第一个标题
我的代码如下所示

 <WebView x:Name="wView"></WebView>

代码隐藏

wView.NavigateToString(
            @"<html> <body> <h1>My First Heading</h1> <div id=""mydiv"" style=""width: 100%; height: 100%;"" ></div> <script src=""https://mydomain/Embed.js"" type=""text/Javascript""> </script> </body> </html>");
wView.NavigateToString(
@“我的第一个标题”);

使用这种方法,我无法在
Embed.js
中运行任何javascript。仅显示H1标记内的内容。如何确保webview内部的javascript(在我的例子中是Embed.js)得到执行?

根据
webview.NavigateToString()
的描述:

NavigateToString支持引用外部文件(如CSS、脚本、图像和字体)的内容。但是,它没有提供一种以编程方式生成或提供这些资源的方法

因此,使js有效的更好方法是在项目中创建HTML文件,将HTML内容写入其中,并按以下方法使用:

wView.Source=新Uri(“ms appx-web:///Html/myHtmlFile.html");
更新 如果需要动态修改HTML文件的内容,则
ms appx web
不合适,因为它指向包中的文件,并且不能在运行时直接修改包中的文件

根据。您可以将
LocalFolder
子文件夹中的html文本保存为临时文件,并引导它通过ms appdata

var htmlFolder=wait ApplicationData.Current.LocalFolder.CreateFolderAsync(“html”,CreationCollisionOption.OpenIfExists);
var localFile=await htmlFolder.CreateFileAsync(“temp.html”,CreationCollisionOption.ReplaceExisting);
wait FileIO.WriteTextAsync(localFile,html);
导航(新Uri(“ms-appdata:///local/html/temp.html"));

p.S.临时文件必须存储在LocalFolder的子文件夹中,并且在我的场景中不能有指向同一级别的链接

,在HTML中,我必须嵌入一些动态内容,因此我无法将其保存为HTML。如果我在每次加载webview之前都使用ao,那么我必须以编程方式更改HTML文件的内容,这不是正确的方法。有没有其他方法可以做到这一点?您好,我修改了我的答案,请检查一下。