我目前正在为 Windows 8.1 和 Windows Phone 8.1 构建一个通用应用程序。
在 Windows 运行时,文件选择器有一个非常易于使用的 API,如下所示:
StorageFile file = await openPicker.PickSingleFileAsync();
它将用户输入视为可以等待的异步操作。在这种情况下,如果用户取消,则返回 null,但您可以想象如果用户取消,则会引发异常。
我想知道是否有某种方法可以创建一个页面,以便我可以创建一个类似的 API。具体来说,我正在使用托管服务进行 OAuth 2.0 身份验证,我想将用户发送到托管在 WebView 中的身份验证页面,如果操作成功则返回请求访问令牌的代码,如果用户不成功则抛出异常授权我的申请。
例如:
var authentication = new AuthenticationAccess();
string code = await authentication.RequestAuthorizationAsync();
该调用将用包含 WebView 的页面交换 Frame 中的页面,用户将能够进行身份验证,然后控制将返回到调用函数,并且页面交换回原始页面。
我有点沉浸在 Windows 8.1 C#/XAML 文档中。据我了解,有一个全局 Window 对象承载一个 Frame 对象,该对象可以将其内容与应用程序中的不同页面交换。在完成了一些 Android 开发之后,我熟悉 Activity 模型,其中可以通过意图启动本质上不同的页面,并且可以将结果传播回启动它的 Activity。使用这个模型,似乎很容易将这个过程包装在我描述的模型中,但我对如何在 Windows 中做同样的事情有点困惑。我需要建立重要的架构来实现这种模式吗?
有没有一个简单的答案,或者我在我的头上?