Windows phone 8 如何构造代码以在WinRT应用程序中运行XAML页面,以及;return";结果如何?

Windows phone 8 如何构造代码以在WinRT应用程序中运行XAML页面,以及;return";结果如何?,windows-phone-8,windows-runtime,windows-phone,winrt-xaml,windows-phone-8.1,Windows Phone 8,Windows Runtime,Windows Phone,Winrt Xaml,Windows Phone 8.1,我目前正在为Windows 8.1和Windows Phone 8.1构建一个通用应用程序 在Windows运行时中,文件选择器有一个非常易于使用的API,如下所示: StorageFile file=wait openPicker.PickSingleFileAsync() 它将用户输入视为可以等待的异步操作。在本例中,如果用户取消,则返回null,但您可以想象如果用户取消,将引发异常 我想知道是否有办法创建一个页面,这样我就可以创建一个类似的API。具体来说,我正在使用托管服务执行OAuth

我目前正在为Windows 8.1和Windows Phone 8.1构建一个通用应用程序

在Windows运行时中,文件选择器有一个非常易于使用的API,如下所示:

StorageFile file=wait openPicker.PickSingleFileAsync()

它将用户输入视为可以等待的异步操作。在本例中,如果用户取消,则返回null,但您可以想象如果用户取消,将引发异常

我想知道是否有办法创建一个页面,这样我就可以创建一个类似的API。具体来说,我正在使用托管服务执行OAuth 2.0身份验证,我希望将用户发送到WebView中托管的身份验证页面,并在操作成功时返回请求访问令牌的代码,或者在用户未授权我的应用程序时引发异常

例如:

var authentication = new AuthenticationAccess();

string code = await authentication.RequestAuthorizationAsync();
调用会将框架中的页面与包含WebView的页面交换,用户将能够进行身份验证,然后控制将返回调用函数,页面交换回原始页面

我在Windows8.1C#/XAML文档中游刃有余。据我所知,有一个全局窗口对象承载一个框架对象,可以将其内容与应用程序中的不同页面交换。做了一些Android开发之后,我对活动模型很熟悉,在这个模型中,可以通过意图启动本质上不同的页面,并可以将结果传播回启动它的活动。有了这个模型,似乎可以很容易地将这个过程包装到我描述的模型中,但我对如何在Windows中做同样的事情有点困惑。我是否需要建立重要的体系结构来实现这种模式

这有一个简单的答案吗,或者我是不是有点不知所措了?

你查过了吗?也许这是解决你问题的一个简单方法


否则-您可以使用
TaskCompletionSource
设置您可以等待的身份验证任务,但我会尽量避免导航到其他页面以查看身份验证对话框,因为导航事件可能会扰乱您的状态并打断等待身份验证完成的人。某种类型的对话框覆盖可能是一个更好的主意。

实际上,我使用
TaskCompletionSource
设法找到了我想要的代码结构,但是WebAuthenticationBroker看起来确实是解决我实际问题的正确方法。