我在uwp应用程序中有一个webview,我需要将一些javascript文件注入其中。我不能将它们包含在html页面的源代码中。
这是我到目前为止所做的。
private async void WebView_DOMContentLoaded(WebView sender, WebViewDOMContentLoadedEventArgs args)
{
await Webview.InvokeScriptAsync("eval", new string[]
{
"var script = document.createElement('script'); script.type='text/javascript'; script.charset='UTF-8'; script.src ="
+ "'ms-appx://Apps.Webapp/JS/jquery-3.2.1.min.js'"
+ ";document.body.appendChild(script);"
});
}
但是当我尝试使用直接调用时,文件很简单,没有加载
任何人都有任何可以帮助我的想法吗?
编辑:我试过没有运气
"'ms-appx-web://Apps.Webapp/JS/jquery-3.2.1.min.js'"
答案 0 :(得分:1)
要从WebView
中的应用包加载文件,您需要使用 ms-appx-web
方案,而不是ms-appx
。例如:
<script type="text/javascript" src="ms-appx-web:///JS/jquery-3.2.1.min.js"></script>
更多详情请参阅WebView课程的“导航到内容部分”。
答案 1 :(得分:0)
经过一些试验和错误,我得到了一个有效的解决方案:
private async void WebView_DOMContentLoaded(WebView sender, WebViewDOMContentLoadedEventArgs args)
{
string scriptToLoad = File.ReadAllText("Apps.Webapp/JS/jquery-3.2.1.min.js");
string[] arguments = { scriptToLoad };
await WebBrowserWizzio.InvokeScriptAsync("eval", arguments);
}
这样我就可以将整个脚本注入页面,而不仅仅是路径。