我试图找到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应用程序。
答案 0 :(得分:2)
经过一些更详细的研究后,看起来问题就是当前的Facebook应用程序是为Windows Phone 8构建的,并且是用Silverlight编写的。
当尝试对我和其他人编写的Universal应用程序执行相同的操作时,上述两种方法都可以正常工作。
正如我在发布前发布的那样,我只能希望Facebook在发布后不久就有一个官方的Windows 10移动应用,这样就可以按照我的计划进行。
<强>更新强>
我刚刚从微软那里听到说这个问题已在内部版本中得到修复,并且很快就会公开发布。越过它的手指将在RTM移动。一旦我看到修复程序可用,我将更新此内容 - 原始问题中显示的代码将是正确的。