当前位置: 首页 > news >正文

ios原生分享

什么是 ios 系统的原生分享呢,如下图所示

具体使用系统UIActivityViewController,完整代码如下:

-(void)shareAny:(NSString *)text url:(NSString *)_url imagePath:(NSString *)_imagePath
{NSLog(@"shareAny, text:%@, url:%@, imagePath:%@", text, _url, _imagePath);NSString *textToShare = text;//需要分享的文本内容NSArray *activityItems = @[textToShare];if (_url != nil) {NSURL *urlToShare = [NSURL URLWithString:_url];//需要分享的URLactivityItems = @[textToShare, urlToShare];}if (_imagePath != nil) {UIImage *imageToShare = [UIImage imageWithContentsOfFile:_imagePath];//需要分享的图片activityItems = @[textToShare, imageToShare];}UIActivityViewController *activityVC = [[UIActivityViewController alloc]initWithActivityItems:activityItems applicationActivities:nil];// 禁用分享渠道activityVC.excludedActivityTypes = @[UIActivityTypePrint, UIActivityTypeCopyToPasteboard,UIActivityTypeAssignToContact,UIActivityTypeSaveToCameraRoll];// 分享之后的回调activityVC.completionWithItemsHandler = ^(UIActivityType  _Nullable activityType, BOOL completed, NSArray * _Nullable returnedItems, NSError * _Nullable activityError) {if (completed) {NSLog(@"成功分享,分享平台%@",activityType);}else{NSLog(@"取消分享");};};[self.viewController presentViewController:activityVC animated:true completion:nil];
}

分享到WhatsApp

- (void) whatsappShareText:(NSString*)text {NSLog(@"whatsapp share text %@", text);NSString *url = [NSString stringWithFormat:@"whatsapp://send?text=%@", [text stringByAddingPercentEncodingWithAllowedCharacters:[NSCharacterSet URLHostAllowedCharacterSet]]];NSURL *whatsappURL = [NSURL URLWithString: url];if ([[UIApplication sharedApplication] canOpenURL: whatsappURL]) {[[UIApplication sharedApplication] openURL: whatsappURL];} else {// Cannot open whatsappNSLog(@"whatsapp cant't open");}
}

分享到Facebook

- (void) facebookShareUrl:(NSString *)url {NSLog(@"facebook share url %@", url);if(![self checkAPPIsExist:@"fb"]) {NSLog(@"facebook is not exits");return;;}// 首先判断某个平台是否可用(如果未绑定账号则不可用)if (![SLComposeViewController isAvailableForServiceType:SLServiceTypeFacebook]) {NSLog(@"facebook is not available");return;}// 创建控制器,并设置ServiceTypeSLComposeViewController *composeVC = [SLComposeViewController composeViewControllerForServiceType:SLServiceTypeFacebook];// 添加要分享的url[composeVC addURL:[NSURL URLWithString:url]];// 弹出分享控制器[self.viewController presentViewController:composeVC animated:YES completion:nil];// 监听用户点击事件composeVC.completionHandler = ^(SLComposeViewControllerResult result){if (result == SLComposeViewControllerResultDone) {NSLog(@"facebook share send");}else if (result == SLComposeViewControllerResultCancelled){NSLog(@"facebook share cancel");}};
}- (void) facebookShareImage:(NSString *)imagePath {NSLog(@"facebook share image %@", imagePath);if(![self checkAPPIsExist:@"fb"]) {NSLog(@"facebook is not exits");return;}// 首先判断某个平台是否可用(如果未绑定账号则不可用)if (![SLComposeViewController isAvailableForServiceType:SLServiceTypeFacebook]) {NSLog(@"facebook is not available");return;}// 创建控制器,并设置ServiceTypeSLComposeViewController *composeVC = [SLComposeViewController composeViewControllerForServiceType:SLServiceTypeFacebook];// 添加要分享的图片[composeVC addImage:[UIImage imageWithContentsOfFile:imagePath]];// 弹出分享控制器[self.viewController presentViewController:composeVC animated:YES completion:nil];// 监听用户点击事件composeVC.completionHandler = ^(SLComposeViewControllerResult result){if (result == SLComposeViewControllerResultDone) {NSLog(@"facebook share send");}else if (result == SLComposeViewControllerResultCancelled){NSLog(@"facebook share cancel");}};
}//判断是否安装APP
-(BOOL)checkAPPIsExist:(NSString*)URLScheme{NSURL* url;if ([URLScheme containsString:@"://"]) {url = [NSURL URLWithString:[NSString stringWithFormat:@"%@",URLScheme]];} else {url = [NSURL URLWithString:[NSString stringWithFormat:@"%@://",URLScheme]];}if ([[UIApplication sharedApplication] canOpenURL:url]){return YES;} else {return NO;}
}

http://www.lryc.cn/news/217817.html

相关文章:

  • 【Ubuntu】安装chrome之后无法启动
  • 顺序栈练习
  • 安全与HTTP协议:为何明文传输数据成为争议焦点?
  • 【笔记】excel怎么把汉字转换成拼音
  • opencv官网文档学习
  • Android性能优化--Perfetto用SQL性能分析
  • NLP之Bert实现文本分类
  • Pytorch从零开始实战08
  • docker部署Jenkins(Jenkins+Gitlab+Maven实现CI/CD)
  • mapbox使用marker创建html点位信息
  • 项目构建工具maven的基本配置
  • 超详细docker学习笔记
  • Adobe acrobat 11.0版本 pdf阅读器修改背景颜色方法
  • HCIA数据通信——路由协议
  • 十种常见典型算法
  • python-列表推导式、生成器表达式
  • NLP 模型中的偏差和公平性检测
  • YUV图像格式详解
  • 软考高项-质量管理措施
  • Redis那些事儿(一)
  • 【多媒体文件格式】M3U8
  • linux中xargs的实用技巧
  • 【Jmeter】生成html格式接口自动化测试报告
  • 如何将极狐GitLab 漏洞报告导出为 HTML 或 PDF 格式或导出到 Jira
  • uniapp原生插件之安卓文字转拼音原生插件
  • [架构之路-254/创业之路-85]:目标系统 - 横向管理 - 源头:信息系统战略规划的常用方法论,为软件工程的实施指明方向!!!
  • CSP-J 2023真题解析
  • 【Proteus仿真】【51单片机】贪吃蛇游戏
  • Android 原生定位开发(解决个别手机定位失败问题)
  • uni-app 中如何实现数据组件间传递?