5

有没有办法在我的应用程序没有创建的照片应用程序中删除相机胶卷中的图像(和视频)。我知道您不能从资产库中删除不是您的应用创建的内容。但是这个应用程序不在应用商店。它位于信息亭类型的环境中。所以我可以使用私有 API。

那么有没有一种方法可以使用苹果不会批准应用商店的私有 API 来做到这一点,但可以适用于我的情况。

谢谢。

4

2 回答 2

11

Yep, you can do this in iOS 8 using Photos framework.

For example if you have Assets URLs stored in NSArray *assetsURLs

PHPhotoLibrary *library = [PHPhotoLibrary sharedPhotoLibrary];
    [library performChanges:^{
        PHFetchResult *assetsToBeDeleted = [PHAsset fetchAssetsWithALAssetURLs:assetsURLs options:nil];
        [PHAssetChangeRequest deleteAssets:assetsToBeDeleted];
    } completionHandler:^(BOOL success, NSError *error)
     {
         //do something here
    }];

this code will ask user to confirm removal from Camera Roll.

于 2015-01-13T18:42:38.337 回答
4

这是 Swift 的一个版本,它将删除库中的所有照片。

首先,您需要确保您拥有应用info.plist文件中的权限密钥: 在此处输入图像描述

您需要获得用户的许可才能访问照片(此处不包括代码)。

接下来是导入&代码:

import Photos

func deleteAllPhotos() {
    let library = PHPhotoLibrary.shared()
    library.performChanges({
        let fetchOptions = PHFetchOptions()
        let allPhotos = PHAsset.fetchAssets(with: .image, options: fetchOptions)
        PHAssetChangeRequest.deleteAssets(allPhotos)
    }) { (success, error) in
        // Handle success & errors
    }
}

调用此代码时,用户会收到操作系统提示,要求确认删除。假设他们点击是,那么一切都消失了。

于 2017-10-19T18:54:04.367 回答