C# 如何在UWP中从webview中打开“保存文件”对话框
我接管了一个UWP项目,必须用下载按钮解决一个问题。在网站上,有一个指向软件包的链接。可以使用浏览器下载EXE。 在我的webview中,据我所知,我无法直接下载到磁盘,但应该可以打开标准浏览器来接管该部分。我设法从我的webview在标准浏览器中打开PDF。这对我和我的noob技能来说已经很棘手了,但现在它起作用了。我对EXE文件也做了同样的尝试,但似乎不起作用。以下是我迄今为止所做的:C# 如何在UWP中从webview中打开“保存文件”对话框,c#,uwp,C#,Uwp,我接管了一个UWP项目,必须用下载按钮解决一个问题。在网站上,有一个指向软件包的链接。可以使用浏览器下载EXE。 在我的webview中,据我所知,我无法直接下载到磁盘,但应该可以打开标准浏览器来接管该部分。我设法从我的webview在标准浏览器中打开PDF。这对我和我的noob技能来说已经很棘手了,但现在它起作用了。我对EXE文件也做了同样的尝试,但似乎不起作用。以下是我迄今为止所做的: private async void WebView1_NewWindowRequested(WebVie
private async void WebView1_NewWindowRequested(WebView sender, WebViewNewWindowRequestedEventArgs args)
{
if (args.Uri != null && args.Uri.OriginalString.ToLower().Contains(".pdf"))
{
return;
}
else
{ webView1.Navigate(args.Uri); }
args.Handled = true;
}
这对PDF是有效的,但当我对EXE做同样的操作时,它什么都不做(可见)
有什么想法吗
如何在UWP中从webview中打开“保存文件”对话框
如果uri包含.exe
,则可以侦听事件处理程序,您可以创建以下载特定于exe文件的文件夹
private async void TestWebView_NavigationStarting(WebView sender, WebViewNavigationStartingEventArgs args)
{
if (args.Uri != null && args.Uri.OriginalString.ToLower().Contains(".exe"))
{
try
{
StorageFile destinationFile = await KnownFolders.PicturesLibrary.CreateFileAsync(
"test.exe", CreationCollisionOption.GenerateUniqueName);
BackgroundDownloader downloader = new BackgroundDownloader();
DownloadOperation download = downloader.CreateDownload(args.Uri, destinationFile);
await download.StartAsync();
}
catch (Exception ex)
{
}
}
}
马哈博解决方案
string Link = args.Uri.Segments.Last();
try
{
var messagedialog = new MessageDialog("Saving File " + Link + " to your Download folder.");
await messagedialog.ShowAsync();
StorageFile destinationFile = await DownloadsFolder.CreateFileAsync(Link, CreationCollisionOption.GenerateUniqueName);
BackgroundDownloader downloader = new BackgroundDownloader();
DownloadOperation download = downloader.CreateDownload(args.Uri, destinationFile);
await download.StartAsync();
}
catch (Exception e)
{
}
谢谢你,尼科!你的回答使我回到正轨。我将其修改为string Link=args.Uri.Segments.Last();请尝试{var messagedialog=new messagedialog(“将文件“+Link+”保存到下载文件夹”);wait messagedialog.ShowAsync();StorageFile destinationFile=wait DownloadsFolder.CreateFileAsync(Link,CreationCollisionOption.GenerateUniqueName);BackgroundDownloader downloader=新的BackgroundDownloader()。。。