让用户从用C#编写的Windows Phone 8应用中选择SkyDrive上的保存或打开位置的正确/推荐方法是什么?

我已经尝试过Windows 8 Apps中使用的FileOpenPicker,但是它似乎只能在C++上运行(不受管理),如果我看对了,它仅支持多媒体文件

从MSDN:
Windows Phone 8
仅本地应用程序支持此API。

最佳答案

与Win8不同,WP8中没有允许访问SkyDrive的内置机制。 WP8中的FilePicker类在 native 应用程序中已重载,因为它们无法访问托管API。与Win8的FilePicker具有相同含义的FilePicker在WP8中不存在。具体来说,WP8's 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;
    }
}

但是,因为它们是第三方API和SDK,因此用户必须在应用程序中使用用户名和密码进行身份验证。这非常糟糕,因为这基本上可以让您自由控制用户的私有(private)数据到SkyDrive。更不用说完全控制由Live身份验证支持的所有其他功能。因此,除非它们是SkyDrive的核心功能,否则大多数应用程序都倾向于避免访问SkyDrive。

关于windows-phone-8 - 如何通过托管代码在SkyDrive中打开和保存文件(选择文件),我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/14069333/

10-09 23:52