You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

UWP中LaunchUriAsync调用失败求助:HTTPS链接无法正常打开

Hey, let's break down why your LaunchUriAsync call is returning false for that specific HTTPS link—especially since regular links like Google work fine, and browsers can open it without issues. Here are the most likely causes and fixes:

1. Malformed URL or Unescaped Characters

Browsers are pretty forgiving with URL formatting, but the Uri constructor in UWP isn't. That PDF link might have hidden issues like:

  • HTML-encoded characters (e.g., & instead of & that browsers auto-convert, but Uri doesn't)
  • Unescaped spaces, Chinese characters, or special symbols
  • Trailing slashes or invalid path segments

Fix: Clean up the URL before passing it to Uri:

// First, decode any HTML entities if needed
var decodedUrl = System.Net.WebUtility.HtmlDecode(url);
// Then escape the URI properly
var escapedUrl = Uri.EscapeUriString(decodedUrl);
// Try launching again
var result = await Windows.System.Launcher.LaunchUriAsync(new Uri(escapedUrl));

You can also validate the URL first to rule out formatting issues:

if (!Uri.TryCreate(url, UriKind.Absolute, out var validUri))
{
    // URL is invalid—fix the source string first
    Debug.WriteLine("Invalid URL format");
}

2. Unsupported Content Type or Protocol Handler

LaunchUriAsync relies on Windows' default protocol handlers. If your link points to a niche content type (e.g., a specialized PDF embedded link, or an HTTPS link that triggers a custom app deep link), Windows might not have a registered handler for it—even if browsers can parse it.

Check:

  • Open the link in the Windows default Edge (UWP version), not the desktop Chrome/Edge. If it fails there too, the issue is with system-level app associations.
  • Go to Settings > Apps > Default apps > Choose default apps by protocol and ensure https is mapped to a valid app.

3. Misconfigured LauncherOptions for LaunchUriForResultsAsync

You mentioned getting parameter errors with LaunchUriForResultsAsync—this usually happens because you're missing a required setting. Unlike LaunchUriAsync, this method needs either:

  • A specified TargetApplicationPackageFamilyName (the app that will handle the link and return results)
  • Or the link's handler app must support returning results to UWP apps

Working Example:

var options = new Windows.System.LauncherOptions();
// Use Edge UWP's package family name as an example
options.TargetApplicationPackageFamilyName = "Microsoft.MicrosoftEdge_8wekyb3d8bbwe";

try
{
    var result = await Windows.System.Launcher.LaunchUriForResultsAsync(new Uri(url), options);
    // Process result here if needed
}
catch (Exception ex)
{
    Debug.WriteLine($"Error: {ex.Message}");
}

Note: Not all apps support returning results, so if the target app doesn't, you'll still get errors.

4. UWP Sandbox or Permission Restrictions

Even if you have the internetClient permission (which you probably do, since Google works), some edge cases might block the link:

  • Enterprise group policies restricting UWP apps from accessing specific domains
  • Links pointing to local resources disguised as HTTPS
  • Security flags in the URL that the UWP launcher blocks

Fix:

  • Verify your app has the internetClient capability enabled in Package.appxmanifest
  • Test the app outside of any enterprise environment if possible
  • Try adding LauncherOptions.TreatAsUntrusted = false explicitly (though it's the default, it can help in some edge cases):
    var options = new Windows.System.LauncherOptions { TreatAsUntrusted = false };
    var result = await Windows.System.Launcher.LaunchUriAsync(new Uri(url), options);
    

Quick Debugging Step

If none of the above works, try launching the link with a fallback—open it directly in Edge via its URI scheme:

var edgeUri = new Uri($"microsoft-edge:{url}");
var result = await Windows.System.Launcher.LaunchUriAsync(edgeUri);

This bypasses the default handler check and forces Edge to open the link, which should work if browsers can handle it.

内容的提问来源于stack exchange,提问作者newszer

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.15 03:58:06