这是我的第一篇文章,所以请对我很轻松:)
我正在做a tutorial for Facebook SDK,我正在尝试从Windows Phone XAML应用程序登录到facebook服务。 当我按照教程的步骤操作时,它工作正常,并点击登录按钮登录,但当我尝试自动化时,我收到错误。
代码使用WebAuthenticationBroker,调用WebAuthenticationBroker.AuthenticateAndContinue(LoginUrl);
当我尝试将该代码放入Loaded事件
时private void Page_Loaded(object sender, RoutedEventArgs e)
{
if (this.fbHelper.AccessToken == null)
{
WebAuthenticationBroker.AuthenticateAndContinue(LoginUrl); //throws error
}
else
{
GetUserInfo();
}
}
我收到以下错误:
远程过程调用失败。 (HRESULT异常:0x800706BE)
我认为问题是该页面还没有准备好执行逻辑,但我真的不知道我应该把代码放在哪里?
答案 0 :(得分:0)
一旦 Window 被激活,似乎可以调用 Broker 。正如我已经尝试过的那样,它应该在这样做时起作用:
public MainPage()
{
this.InitializeComponent();
Window.Current.Activated += Current_Activated;
}
private void Current_Activated(object sender, Windows.UI.Core.WindowActivatedEventArgs e)
{
Window.Current.Activated -= Current_Activated;
Debug.WriteLine("Activated");
WebAuthenticationBroker.AuthenticateAndContinue(new Uri("https://google.com"));
}
当然它需要一些改进,但应该有效。请记住,出于多种原因可能会调用 Activeted 事件,例如在显示对话框后。