使用图像启动Safari或保存到相机胶卷问题

时间:2016-04-22 16:12:14

标签: ios xamarin.ios

我从网络服务下载了一张图片,需要在Safari中打开图片或将其保存到相机胶卷。我试图在Safari中打开图像,但safari无法打开。

var safari = UIApplication.SharedApplication;
var uri = new NSUrl(path); // where the image is saved to
safari.OpenUrl(uri);

这会编译,但Safari无法启动

我保存到相机胶卷的代码是

PHPhotoLibrary.SharedPhotoLibrary.PerformChanges(() =>
{
      using (var pool3 = new NSAutoreleasePool())
      {                                     pool3.InvokeOnMainThread(delegate ()
           {                                                               PHAssetChangeRequest.FromImage((UIImage)UIImage.FromFile(path));
           });
      }
      }, (t, err) =>
      {
           if (!t)
           {
                 using (var pool1 = new NSAutoreleasePool())
                 {
                      pool1.InvokeOnMainThread(delegate () {
                           var alert = new UIAlertView("Error saving file", "An error has occured saving your photo to the camera roll", null, "OK");
                          alert.Show();
                          };
           }
           else
           {
                 using (var pool2 = new NSAutoreleasePool())
                 {
                       pool2.InvokeOnMainThread(delegate (){
                            var alert = new UIAlertView("Image saved", "Your image has been saved to the camera roll", null, "OK"); 
                            alert.Show();
                            });
                        };
                 }
         });

崩溃并烧伤(已设置正确的权限)

我不知道为什么这些都不正常,因为它们似乎是正确的。

1 个答案:

答案 0 :(得分:0)

您无法使用safari打开本地路径,这在iOS上是不允许的(应用程序是沙盒式的),因此您需要使用远程URL或拥有自己的UIWebView或{{1或者WKWebView以类似体验的形式显示该图像。 Here is a blog post in the Xamarin Site关于这个问题。

此处有一个很好的recipe in the Xamarin site可以将照片保存到相机胶卷中,您可以根据它自行解决。

希望这有帮助!