Launcher.QueryUriSupportAsync() - 不能运行Windows 10移动版

时间:2015-10-16 08:29:17

标签: c# windows-10 win-universal-app windows-10-mobile

我试图找到Facebook应用程序是否安装在Windows 10移动设备上,以便可以通过Facebook应用程序而不是WebAuthenticationBroker来处理身份验证。

以下代码行始终返回LaunchQuerySupportStatus.NotSupported

LaunchQuerySupportStatus uriAvailability = await Launcher.QueryUriSupportAsync(new Uri("fbconnect://authorize?client_id=.........", UriKind.Absolute), LaunchQuerySupportType.Uri);

如果我绕过此检查并直接转到Launcher.LaunchUriAsync,则会按预期打开应用。但是,我需要执行上述检查以支持桌面版本,但它不会给我任何回复,而不是不支持。

任何想法???

UDPATE
使用我自己的应用协议LaunchQuerySupportStatus.Available时,我可以获得myapp://something/123/。我还发现我需要添加UriKind.Absolute才能使其正常工作。

但是,fbconnect://协议

仍然没有变化

更新 - 2
我现在试过了

var apps = await Launcher.FindUriSchemeHandlersAsync("fbconnect");

仍然没有结果。如果把我自己的应用程序的协议放在那里,那么我会得到结果。

如果我错过了这个检查步骤,那么肯定安装了Facebook,然后启动器工作并打开Facebook应用程序。

1 个答案:

答案 0 :(得分:2)

经过一些更详细的研究后,看起来问题就是当前的Facebook应用程序是为Windows Phone 8构建的,并且是用Silverlight编写的。

当尝试对我和其他人编写的Universal应用程序执行相同的操作时,上述两种方法都可以正常工作。

正如我在发布前发布的那样,我只能希望Facebook在发布后不久就有一个官方的Windows 10移动应用,这样就可以按照我的计划进行。

<强>更新
我刚刚从微软那里听到说这个问题已在内部版本中得到修复,并且很快就会公开发布。越过它的手指将在RTM移动。一旦我看到修复程序可用,我将更新此内容 - 原始问题中显示的代码将是正确的。