我真的很纠结这个问题!
所以我有一个 WinRT Metro 应用程序,它有一个 HTML 网页嵌入到应用程序内的 Web View 中。在 HTML 页面中有一个 div,其中包含指向本地主机 url 的 href。我正在使用此本地主机调用与正在本地主机端口上监听此 url 的 .NET 桌面应用程序进行通信。
当我在 Visual Studio(2015,更新 1 或 2)中构建应用程序(作为调试或发布)时,应用程序按预期工作。我可以点击 div,触发 url,通信成功。
但是,当我打包应用程序并将其旁加载到我的机器上时,该功能无法按预期运行。我可以点击 div...但是 url 永远不会被触发。
HTML 网址示例([...] = 代码已删除):
<a href="http://localhost:8123/?Api [...] >Click here</a>
代码隐藏导航到 HTML 示例:
this.webView.Navigate(new Uri("ms-appdata:///local/index.html"));
XAML Webview 实例化:
<WebView x:Name="webView" Grid.Row="1" ScriptNotify="webView_ScriptNotify" Grid.Column="1" Visibility="Collapsed"/>
以下是我尝试过的方法:
- 我创建了一个 仅 包含 WebView 和嵌入式 HTML 页面的 WinRT 应用程序。功能在构建时有效,但在打包时无效。
- 我创建了一个 UWP 应用程序,它仅包含 WebView 和嵌入式 HTML 页面。功能在构建时有效,但在打包时无效。
- 我尝试使用命令行在 Visual Studio 外部打包应用程序,如 here. 所述该功能不起作用。
- 我尝试使用不同版本的 Visual Studio 2015。结果相同。
- 我尝试在不同的机器上构建/打包。结果相同。
- 我试图导航到 google 而不是 localhost。有效。
- 我试图导航到另一个 html 文件而不是本地主机。有效。
- 当然,我也尝试了一些显而易见的事情,例如清理、更改包名称、更改 Visual Studio App Packager 中的设置、重新启动、删除引用等。
有没有人遇到过这种情况?这似乎是打包过程中的某种错误。欢迎任何建议/提示/答案!谢谢!
以防万一你想知道,这个应用程序仅供我工作的公司内部的企业使用,不会上传到 Windows 应用商店。
最佳答案
通常,您无法在 UWP 商店应用程序中打开环回连接。句号。如果您是旁加载,或者在企业环境中,有一个解决方法:
https://msdn.microsoft.com/en-us/library/windows/apps/dn640582.aspx
关于c# - 打包应用程序时,WinRT 和 UWP WebView localhost url 不会触发,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36629465/