Как в SaveToPhotosAlbum вылетать в ios 11? - PullRequest
0 голосов
/ 29 мая 2018

Когда мы запускаем код, указанный ниже, чтобы загрузить и сохранить изображение в библиотеке фотографий, он автоматически завершает работу в ios 11. Пожалуйста, помогите решить эту проблему.

try 
{
    string uri = "https://www.xamarin.com/content/images/pages/branding/assets/xamagon.png";
    using (var url = new NSUrl(uri))
    using (var data = NSData.FromUrl(url))
    UIImage.LoadFromData(data).SaveToPhotosAlbum((image, error) => 
    {
        var o = image as UIImage;
        Console.WriteLine("error:" + error);
    });
} 
catch(Exception exx) 
{
    throw exx;
}

Ответы [ 2 ]

0 голосов
/ 29 мая 2018

Swift - 4, Xcode 9, IOS 11

Info.plist

  <key>NSPhotoLibraryUsageDescription</key>
  <string> photos description.</string>

  <key>NSPhotoLibraryAddUsageDescription</key>
  <string> photos add description.</string>

Добавить код при нажатии кнопки

let url = "https://www.xamarin.com/content/images/pages/branding/assets/xamagon.png"
        let data = try! Data(contentsOf: URL(string: url)!)

        let image:UIImage = UIImage(data: data)!

        UIImageWriteToSavedPhotosAlbum(image, self, #selector(image(_:didFinishSavingWithError:contextInfo:)), nil)

@objc func image(_ image: UIImage, didFinishSavingWithError error: NSError?, contextInfo: UnsafeRawPointer) {
        if let error = error {
            // we got back an error!
            let ac = UIAlertController(title: "Save error", message: error.localizedDescription, preferredStyle: .alert)
            ac.addAction(UIAlertAction(title: "OK", style: .default))
            present(ac, animated: true)
        } else {

            let ac = UIAlertController(title: "Saved!", message: "The image has been saved to your photos.", preferredStyle: .alert)
            ac.addAction(UIAlertAction(title: "OK", style: .default))
            present(ac, animated: true)
        }
    }
0 голосов
/ 29 мая 2018

Вы должны добавить это, обновление iOS 11

<key>NSPhotoLibraryAddUsageDescription</key>
<string>$(PRODUCT_NAME) would like to use Photo Library</string>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...