让用户从用 c# 编写的 windows phone 8 应用程序中选择 SkyDrive 上的保存或打开位置的正确/推荐方式是什么?
我已经尝试过在 Windows 8 应用程序中使用的FileOpenPicker,但它似乎只能在 C++(非托管)中工作,如果我没看错,它只会支持多媒体文件
来自 MSDN:
Windows Phone 8
此 API 仅在本机应用程序中受支持。
让用户从用 c# 编写的 windows phone 8 应用程序中选择 SkyDrive 上的保存或打开位置的正确/推荐方式是什么?
我已经尝试过在 Windows 8 应用程序中使用的FileOpenPicker,但它似乎只能在 C++(非托管)中工作,如果我没看错,它只会支持多媒体文件
来自 MSDN:
Windows Phone 8
此 API 仅在本机应用程序中受支持。
与 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,除非它是它们的核心功能。
查看包含 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