5

让用户从用 c# 编写的 windows phone 8 应用程序中选择 SkyDrive 上的保存或打开位置的正确/推荐方式是什么?

我已经尝试过在 Windows 8 应用程序中使用的FileOpenPicker,但它似乎只能在 C++(非托管)中工作,如果我没看错,它只会支持多媒体文件

来自 MSDN: Windows Phone 8
此 API 仅在本机应用程序中受支持。

4

2 回答 2

5

与 Win8 不同,WP8 中没有允许访问 SkyDrive 的内置机制。WP8 中的 FilePicker 类已在本机应用程序中重载,因为它们无法访问托管 API。与 Win8 的 FilePicker 相同意义的 FilePicker 在 WP8 中不存在。特别是WP8 的 FilePicker用于替换托管的 PhotoChooserTask,因为它仅适用于托管应用程序。

如果您想访问 SkyDrive,您可以使用 SkyDrive 的 REST 服务或围绕它们的包装器(特别是Live SDK)。例如这里的 Live SDK SigninButton 和处理登录:

<live:SignInButton x:Name="btnSignin" Scopes="wl.signin wl.basic" SessionChanged="btnSignin_SessionChanged" />

private void btnSignin_SessionChanged(object sender, LiveConnectSessionChangedEventArgs e)
{
    if (e.Status == LiveConnectSessionStatus.Connected)
    {
        session = e.Session;
        client = new LiveConnectClient(session);
        infoTextBlock.Text = "Signed in.";
    }
    else
    {
        infoTextBlock.Text = "Not signed in.";
        client = null;
    }
}

但是,由于这些是第 3 方 API 和 SDK,用户必须在您的应用程序中使用用户名和密码进行身份验证。这很糟糕,因为这基本上可以让您自由支配用户的私人数据到 SkyDrive。更不用说完全控制由实时身份验证提供支持的所有其他内容。因此,大多数应用程序倾向于避免访问 SkyDrive,除非它是它们的核心功能。

于 2012-12-29T02:24:08.937 回答
3

查看包含 SkyDrive API 的 Microsoft Live SDK:http: //msdn.microsoft.com/en-us/library/live/hh826521.aspx

您可以从这里下载并安装它:http: //www.microsoft.com/en-us/download/details.aspx?id=35754

于 2012-12-28T19:51:27.763 回答