无法将本地javascript文件加载到网络视图中

时间:2017-07-24 14:47:11

标签: c# xaml webview uwp

我在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'"

2 个答案:

答案 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);
}

这样我就可以将整个脚本注入页面,而不仅仅是路径。