打包应用程序时,WinRT和UWP WebView localhost URL不会触发
男孩我真的很挣这个!
所以我有一个WinRT Metro应用程序,它将HTML网页嵌入到应用程序中的webview中。 在HTML页面中有一个div与一个本地主机URL的href。 我正在使用此localhost调用与正在本地主机端口上侦听此URL的.NET桌面应用程序进行通信。
当我在Visual Studio(2015,更新1或2)中构建应用程序(作为调试或发布)时,应用程序按预期工作。 我可以点击div,触发url,通信成功。
但是,当我打包应用程序并将其侧载到我的机器上时,该function无法按预期工作。 我可以点击div …但是url永远不会被解雇。
HTML Url示例([…] =代码已删除):
Click here
Codebehind导航到HTML示例:
this.webView.Navigate(new Uri("ms-appdata:///local/index.html"));
XAML Webview实例化:
以下是我尝试过的事情:
- 我创建了一个仅包含webview和嵌入式HTML页面的WinRT应用程序。 function在构建时有效,但在打包时无效。
- 我创建了一个仅包含webview和嵌入式HTML页面的UWP应用程序。 function在构建时有效,但在打包时无效。
- 我尝试使用此处所述的命令行在Visual Studio外部打包应用程序。 function不起作用。
- 我尝试使用不同版本的Visual Studio 2015.结果相同。
- 我尝试在不同的机器上进行构建/包装。 结果相同。
- 我试图导航到谷歌而不是本地主机。 作品。
- 我试图导航到另一个html文件而不是localhost。 作品。
- 当然,我尝试了很明显的事情,比如清理,更改包名,更改Visual Studio App Packager中的设置,重新启动,删除引用等。
有谁之前经历过这个吗? 这似乎是包装过程中的某种错误。 欢迎任何建议/提示/答案! 谢谢!
如果您想知道,此应用程序仅供我工作的公司内的企业使用,不会上传到Windowsapp store。
通常,您无法在UWP商店应用程序中打开环回连接。 完全停止。 如果您是侧载或在企业环境中,则有一种解决方法:
https://msdn.microsoft.com/en-us/library/windows/apps/dn640582.aspx
我有一个类似的问题,因为它值得分享我的经验。
我的应用程序是一个带有WebView控件的通用应用程序。 WebView源是应用程序包中的文件。 我在XAML中定义我的WebView如下。
在调试模式下,这非常有效。 在发布模式下的第一次运行中,它不会加载页面。 在发布模式应用程序的所有后续运行中,它完美运行。 这是一个可重复且令人难以置信的令人沮丧的错误。
我的解决方法很简单但很有效。 我使用计时器在一秒钟后设置webview的来源。 我在this.InitializeComponent();
下添加以下行this.InitializeComponent();
// this worksaround a bug: on first launch in release mode the webview doesn't load loadWebviewTimer = new Timer(loadWebview, null, 1000, Timeout.Infinite);
然后另一个
private async void loadWebview(object state) { await Dispatcher.RunAsync(CoreDispatcherPriority.Normal, () => { myWebview.Navigate(new Uri("ms-appx-web:///www/mylocalwebpage.html")); }); }
这不是一个很好的修复,但它的工作原理。 有趣的是,mylocalwebpage.html里面有很多javascript; 我怀疑这与问题有关。
上述就是C#学习教程:打包应用程序时,WinRT和UWP WebView localhost URL不会触发分享的全部内容,如果对大家有所用处且需要了解更多关于C#学习教程,希望大家多多关注—计算机技术网(www.ctvol.com)!
本文来自网络收集,不代表计算机技术网立场,如涉及侵权请联系管理员删除。
ctvol管理联系方式QQ:251552304
本文章地址:https://www.ctvol.com/cdevelopment/943088.html