让用户从用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/