这里的图片分享,不是通过实现新浪或者其他网站的接口,而是调用WindowsPhone的接口来实现。
这样做的好处就是,可以把所有可以接受图片的应用都提供给用户。
截图如下:
其中的原理就是几行代码:
var ml = new MediaLibrary();
var pic = ml.SavedPictures[ml.SavedPictures.Count - 1];
var smt = new ShareMediaTask { FilePath = pic.GetPath() };
smt.Show();
我这里取得的,是在相册中的“保存的图片”文件夹中的最后一张图片。有的同学可能会问,可不可以从自己的IsolatedStorageFile中分享呢?
至少到现在为止,Wp还不允许这样做。
为什么呢?
这是由于为了保证分享的安全性,微软禁止随意分享一些文件,所以只可以从MediaLibrary中分享。
所以,如果你想把自己项目生成的图片分享给其他应用,除了调用其他应用的接口,就只能先保存到图片中,然后再通过以上方法取得文件的Path来共享。
再说说文件共享。
var file = await ApplicationData.Current.LocalFolder.GetFileAsync("Target.pdf");
await Launcher.LaunchFileAsync(file);
其中的Target.pdf我已经预先存到了IsolatedStorageFile中,因为只有存到独立存储之后才可以通过这种方式分享。
而Launch之后,只要实现了.pdf后缀的程序都可以接受到信号然后被打开,截图如下:
有些同学可能又会问了,为什么不用这种方法打开图片呢?
其实png,jpg这些后缀名,全部是微软预留的后缀,如果我们使用这种方法打开的话,只能使用微软的默认图片查看器打开,而且没有分享功能。