我想将图像保存到ios相机胶卷中。它在模拟器中运行良好。
但在实际的iPhone上,我没有得到这样的权限提示:
- (void)saveImageToCameraRoll:(CDVInvokedUrlCommand*)command
{
CDVPluginResult* pluginResult = nil;
NSString *filename = [command argumentAtIndex:0];
NSString *tmpFile = [NSTemporaryDirectory() stringByAppendingPathComponent:[NSString stringWithFormat:@"%@", filename]];
UIImage *image = nil;
image = [UIImage imageWithContentsOfFile:tmpFile];
ALAuthorizationStatus status = [ALAssetsLibrary authorizationStatus];
if(status != ALAuthorizationStatusAuthorized || image == nil){
pluginResult = [CDVPluginResult resultWithStatus:CDVCommandStatus_ERROR messageAsString:@"noaccess"];
}
else{
UIImageWriteToSavedPhotosAlbum(image, nil, nil, nil);
pluginResult = [CDVPluginResult resultWithStatus:CDVCommandStatus_OK messageAsString:@"saved"];
}
[self.commandDelegate sendPluginResult:pluginResult callbackId:command.callbackId];
}
有什么方法可以强迫它吗?
感谢。欢呼声。
答案 0 :(得分:2)
如果您拒绝了该权限,则无法通过强制提示来获取该提示。您可以检查您是否可以访问。如果您没有访问权限,则可以要求用户根据您的应用程序在设置应用中授予权限..
喜欢这个。
ALAuthorizationStatus status = [ALAssetsLibrary authorizationStatus];
if (status != ALAuthorizationStatusAuthorized) {
UIAlertView *alert = [[UIAlertView alloc] initWithTitle:@"Attention" message:@"Please give this app permission to access your photo library in your settings app!" delegate:nil cancelButtonTitle:@"Close" otherButtonTitles:nil, nil];
[alert show];
}
答案 1 :(得分:1)
iOS只要求一次权限。即使您重新安装该应用程序,也不会再次询问该权限,它只会使用旧的首选项。
要强制iOS请求权限,请卸载您的应用程序并提前几天更改日期并重新安装。您将再次看到安全提示。
答案 2 :(得分:0)
一旦用户允许其获得许可,iOS除非您再次卸载并安装,否则不会再次请求相同的权限许可。
或者,如果您想检查权限,请转到设置,看看您的应用是否已启用照片的权限。