// NSString *testToShare = @"分享的标题";
// NSURL *urlToShare = [NSURL URLWithString:@"http://www.baidu.com"];
// UIImage *imageToShare = image;
// NSArray *activityItems = @[testToShare,imageToShare,urlToShare];
UIImage *imageToShare = image;
NSArray *activityItems = @[imageToShare];
UIActivityViewController *activityVc = [[UIActivityViewController alloc] initWithActivityItems:activityItems applicationActivities:nil];
activityVc.excludedActivityTypes = @[UIActivityTypePrint,UIActivityTypeCopyToPasteboard,UIActivityTypeAssignToContact,UIActivityTypeSaveToCameraRoll];
[self presentViewController:activityVc animated:YES completion:nil];
activityVc.completionWithItemsHandler = ^(UIActivityType _Nullable activityType, BOOL completed, NSArray * _Nullable returnedItems, NSError * _Nullable activityError) {
if (completed) {
NSLog(@"分享成功");
}else{
NSLog(@"分享取消");
}
};
弹出框是英文,如何改成中文?
第一种方法:
选择project 中的工程名,如下图所示:
屏幕快照 2016-10-10 1.45.42 PM.png
在Localizations 下边点击“+”,选择 Chinese(simplified),如下图所示:
屏幕快照 2016-10-10 1.47.42 PM.png
点击“完成”即可。
第二种方法:
打开info.plist文件,在里边添加Localizations 键值对,如下图所示,就可以了
屏幕快照 2016-10-10 1.50.49 PM.png
二、图片保存到相册,权限设置
if ([PHPhotoLibrary authorizationStatus] == PHAuthorizationStatusAuthorized){//用户之前已经授权
//进行保存图片操作
UIImageWriteToSavedPhotosAlbum(image, self, @selector(image:didFinishSavingWithError:contextInfo:), nil);
}
else if([PHPhotoLibrary authorizationStatus] == PHAuthorizationStatusDenied){//用户之前已经拒绝授权
UIAlertController *alertC = [UIAlertController alertControllerWithTitle:@"提示" message:@"您之前拒绝了访问相册,请到手机隐私设置" preferredStyle:UIAlertControllerStyleAlert];
UIAlertAction *sureAction = [UIAlertAction actionWithTitle:@"确定" style:UIAlertActionStyleDefault handler:^(UIAlertAction * _Nonnull action) {
//[self dismissViewControllerAnimated:YES completion:nil];
NSURL *url = [NSURL URLWithString:@"App-prefs:root=Photos"];
if([[UIApplication sharedApplication] canOpenURL:url]){
if([[UIDevice currentDevice].systemVersion doubleValue] >= 10.0) {
[[UIApplication sharedApplication] openURL:url options:@{} completionHandler:nil];
}
else{
[[UIApplication sharedApplication] openURL:url];
}};
}];
[alertC addAction:sureAction];
[self presentViewController:alertC animated:YES completion:nil];
}
else{//弹窗授权时监听
[PHPhotoLibrary requestAuthorization:^(PHAuthorizationStatus status) {
if (status == PHAuthorizationStatusAuthorized){//允许
//进行保存图片操作
UIImageWriteToSavedPhotosAlbum(image, self, @selector(image:didFinishSavingWithError:contextInfo:), nil);
}
else{//拒绝
[self dismissViewControllerAnimated:YES completion:nil];
}
}];
}
IOS开发之APP如何跳转到系统设置界面
在 IOS开发中有时候会遇到这样一个需求,当 APP 中需要获取使用相机/相册等系统的权限时,而用户第一次却没有授权,当用户再次进入时,我们则需要提示用户去开启权限,并且直接跳到系统的设置界面授权。
方法有2种
一、直接在跳转按钮的点击事件方法中添加如下代码
NSURL*url = [NSURLURLWithString:UIApplicationOpenSettingsURLString];if([[UIApplicationsharedApplication] canOpenURL:url]) { [[UIApplicationsharedApplication] openURL:url];}
造成这种情况一般是在错的线程中执行了某些操作,解决办法是采用延时机制
dispatch_after(0.2, dispatch_get_main_queue(), ^{NSURL*url = [NSURLURLWithString:UIApplicationOpenSettingsURLString];if([[UIApplicationsharedApplication] canOpenURL:url]) { [[UIApplicationsharedApplication] openURL:url]; }});
二、
1.先在跳转按钮的点击事件方法中添加如下代码,iOS10之后有变化,所以要添加一个判断
NSURL*url = [NSURLURLWithString:@"App-Prefs:root=WIFI"];if([[UIApplicationsharedApplication] canOpenURL:url]){if([[UIDevice currentDevice].systemVersiondoubleValue] >=10.0) { [[UIApplicationsharedApplication] openURL:url options:@{} completionHandler:nil]; }else{ [[UIApplicationsharedApplication] openURL:url]; }}
2.然后在项目中的info.plist中添加 URL types 并设置一项URL Schemes为prefs,如下图:
注意:String 字段那里@”App-Prefs:root=WIFI”,iOS10以下的版本可以不加“ App-”,但 iOS10以上的版本要加,不然跳转不了。
这里演示的是跳转至系统的 WIFI 界面,当然你也可以修改字符串,跳到相应的设置界面
@"App-prefs:root=WIFI" //打开WiFi
@"App-prefs:root=Bluetooth" //打开蓝牙设置页
@"App-prefs:root=AIRPLANE_MODE" //打开飞行模式
@"App-prefs:root=MOBILE_DATA_SETTINGS_ID" //蜂窝移动网络
@"App-prefs:root=INTERNET_TETHERING" //个人热点
@"App-prefs:root=NOTIFICATIONS_ID" //通知设置
@"App-prefs:root=General" //通用
@"App-prefs:root=General&path=About" //通用-关于本机
@"App-prefs:root=DISPLAY&BRIGHTNESS" //显示与亮度
@"App-prefs:root=Wallpaper" //墙纸
@"App-prefs:root=Sounds" //声音
@"App-prefs:root=Privacy" //隐私
@"App-prefs:root=STORE" //存储
@"App-prefs:root=NOTES" //备忘录
@"App-prefs:root=SAFARI" //Safari
@"App-prefs:root=MUSIC" //音乐
@"App-prefs:root=Photos" //照片与相机
@"App-prefs:root=CASTLE" //iCloud
@"App-prefs:root=FACETIME" //FaceTime
@"App-prefs:root=LOCATION_SERVICES" //定位服务
@"App-prefs:root=Phone" //电话
//通用下常用字段
@"prefs:root=General&path=About" //关于本机
@"prefs:root=General&path=SOFTWARE_UPDATE_LINK" //软件更新
@"prefs:root=General&path=DATE_AND_TIME" //日期和时间
@"prefs:root=General&path=ACCESSIBILITY" //辅助功能
@"prefs:root=General&path=Keyboard" //键盘
@"prefs:root=General&path=VPN" //VPN设置
@"prefs:root=General&path=AUTOLOCK" //自动锁屏
@"prefs:root=General&path=INTERNATIONAL" //语言与地区
@"prefs:root=General&path=ManagedConfigurationList" //描述文件
//隐私下常用字段
@"prefs:root=Privacy&path=CAMERA" //设置相机使用权限
@"prefs:root=Privacy&path=PHOTOS" //设置照片使用权限
oot=Privacy&path=PHOTOS"//设置照片使用权限
作者:pentakill
链接:https://www.jianshu.com/p/9cb4c794b9f7
来源:简书
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。