当前位置: 首页 > 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;}
}

相关文章:

ios原生分享

什么是 ios 系统的原生分享呢,如下图所示 具体使用系统UIActivityViewController,完整代码如下: -(void)shareAny:(NSString *)text url:(NSString *)_url imagePath:(NSString *)_imagePath {NSLog("shareAny, text:%, url:%, imagePa…...

【Ubuntu】安装chrome之后无法启动

【Ubuntu】安装chrome之后无法启动 文章目录 【Ubuntu】安装chrome之后无法启动1. 问题描述2.解决方法Reference 1. 问题描述 命令行运行 google-chrome报错 [5901:5901:0610/183033:ERROR:process_singleton_linux.cc(309)] 其他计算机 (money-Latitude-E5430-non-vPro) 的…...

顺序栈练习

顺序栈练习 相关内容: 1.判断顺序栈栈满的两种方式 2.一张图理解栈顶指针加加减减的问题 3.栈的顺序存储结构(顺序栈) //顺序栈的初始化、判空、入栈、出栈、读取栈顶元素 //顺序栈的结构:数组、栈顶指针(本质是下标) #include&…...

安全与HTTP协议:为何明文传输数据成为争议焦点?

🎬 江城开朗的豌豆:个人主页 🔥 个人专栏 :《 VUE 》 《 javaScript 》 📝 个人网站 :《 江城开朗的豌豆🫛 》 ⛺️ 生活的理想,就是为了理想的生活 ! 目录 ⭐ 专栏简介 📘 文章引言 一、H…...

【笔记】excel怎么把汉字转换成拼音

1、准备好excel文件,复制需要转拼音列。 2、打开一个空白Word文档,并粘贴刚才复制的内容; 3、全选Word文档中刚粘贴的内容,点击「开始」选项卡「字体」命令组下的「拼音指南」,调出拼音指南对话框; 4、全…...

opencv官网文档学习

文章最后有一些图片资源 1.图像处理基本使用 import cv2# 读取图像 image cv2.imread("images/1.png", cv2.IMREAD_GRAYSCALE) print("image:",image)# 显示图像 namedWindow cv2.namedWindow("images/1.png") cv2.imshow("images/1.pn…...

Android性能优化--Perfetto用SQL性能分析

Android性能优化–Perfetto用SQL性能分析 文章目录 Android性能优化--Perfetto用SQL性能分析介绍Perfetto SQL 基础使用 Perfetto SQL 进行性能分析总结 本文首发地址 https://blog.csdn.net/CSqingchen/article/details/134167741 最新更新地址 https://gitee.com/chenjim/che…...

NLP之Bert实现文本分类

文章目录 1. 代码展示2. 整体流程介绍3. 代码解读4. 报错解决4.1 解决思路4.2 解决方法 5. Bert介绍5.1 什么是BertBERT简介:BERT的核心思想:BERT的预训练策略:BERT的应用:为什么BERT如此受欢迎?总结: 1. 代…...

Pytorch从零开始实战08

Pytorch从零开始实战——YOLOv5-C3模块实现 本系列来源于365天深度学习训练营 原作者K同学 文章目录 Pytorch从零开始实战——YOLOv5-C3模块实现环境准备数据集模型选择开始训练可视化模型预测总结 环境准备 本文基于Jupyter notebook,使用Python3.8&#xff0c…...

docker部署Jenkins(Jenkins+Gitlab+Maven实现CI/CD)

GitLab介绍 GitLab是一个用于仓库管理系统的开源项目,使用Git作为代码管理工具,并在此基础上搭建起来的Web服务,可通过Web界面进行访问公开的或者私人项目。它拥有与Github类似的功能,能够浏览源代码,管理缺陷和注释。…...

mapbox使用marker创建html点位信息

mapbox使用marker创建html点位信息 codePen地址 mapboxgl.accessToken "pk.eyJ1IjoibGl1emhhbzI1ODAiLCJhIjoiY2xmcnV5c2NtMDd4eDNvbmxsbHEwYTMwbCJ9.T0QCxGEJsLWC9ncE1B1rRw"; const center [121.29786, 31.19365]; const map new mapboxgl.Map({container: &quo…...

项目构建工具maven的基本配置

👑 博主简介:知名开发工程师 👣 出没地点:北京 💊 2023年目标:成为一个大佬 ——————————————————————————————————————————— 版权声明:本文为原创文…...

超详细docker学习笔记

关于docker 一、基本概念什么是docker?docker组件:我们能用docker做什么Docker与配置管理:Docker的技术组件Docker资源Docker与虚拟机对比 二、安装docker三、镜像命令启动命令帮助命令列出本地主机上的镜像在远程仓库中搜索镜像查看占据的空间删除镜像…...

Adobe acrobat 11.0版本 pdf阅读器修改背景颜色方法

打开菜单栏,编辑,首选项,选择辅助工具项,页面中 勾选 替换文档颜色,页面背景自己选择一个颜色,然后确定,即可!...

HCIA数据通信——路由协议

数据通信——网络层(OSPF基础特性)_咕噜跳的博客-CSDN博客 数据通信——网络层(RIP与BGP)_咕噜跳的博客-CSDN博客 上述是之前写的理论知识部分,懒得在实验中再次提及了。这次做RIP协议以及OSPF协议。不过RIP协议不常用…...

十种常见典型算法

什么是算法? 简而言之,任何定义明确的计算步骤都可称为算法,接受一个或一组值为输入,输出一个或一组值。(来源:homas H. Cormen, Chales E. Leiserson 《算法导论第3版》) 可以这样理…...

python-列表推导式、生成器表达式

一、列表推导式 列表推导式:用一句话来生成列表 语法:[结果 for循环 判断] 筛选模式: 二、生成器表达式...

NLP 模型中的偏差和公平性检测

一、说明 近年来,自然语言处理 (NLP) 模型广受欢迎,彻底改变了我们与文本数据交互和分析的方式。这些基于深度学习技术的模型在广泛的应用中表现出了卓越的能力,从聊天机器人和语言翻译到情感分析和文本生成。然而&…...

YUV图像格式详解

1.概述 YUV是一种图像颜色编码方式。 相对于常见且直观的RGB颜色编码,YUV的产生自有其意义,它基于人眼对亮度比色彩的敏感度更高的特点,使用Y、U、V三个分量来表示颜色,并通过降低U、V分量的采样率,尽可能保证图像质…...

软考高项-质量管理措施

质量规划 编制《项目质量规划书》、《项目验收规范》等质量文件,对文件进行评审,对项目成员进行质量管理培训; 质量保证 评审、过程分析、定期对项目进行检查并跟踪改进情况; 质量控制 测试、因果分析、变更、统计抽样等。 80/…...

magic-api异常处理与错误排查:常见问题解决方案大全

magic-api异常处理与错误排查:常见问题解决方案大全 【免费下载链接】magic-api magic-api 是一个接口快速开发框架,通过Web页面编写脚本以及配置,自动映射为HTTP接口,无需定义Controller、Service、Dao、Mapper、XML、VO等Java对…...

声明式图表工具:提升技术文档绘制的自动化方案

声明式图表工具:提升技术文档绘制的自动化方案 【免费下载链接】drawio_mermaid_plugin Mermaid plugin for drawio desktop 项目地址: https://gitcode.com/gh_mirrors/dr/drawio_mermaid_plugin 本文旨在探讨基于文本驱动绘图的声明式图表生成方案在技术文…...

终极指南:用DDrawCompat在现代Windows上完美复活经典游戏

终极指南:用DDrawCompat在现代Windows上完美复活经典游戏 【免费下载链接】DDrawCompat DirectDraw and Direct3D 1-7 compatibility, performance and visual enhancements for Windows Vista, 7, 8, 10 and 11 项目地址: https://gitcode.com/gh_mirrors/dd/DDr…...

Nintendo Switch文件管理终极指南:NSC_BUILDER如何成为你的游戏库管家

Nintendo Switch文件管理终极指南:NSC_BUILDER如何成为你的游戏库管家 【免费下载链接】NSC_BUILDER Nintendo Switch Cleaner and Builder. A batchfile, python and html script based in hacbuild and Nuts python libraries. Designed initially to erase title…...

[笔记] 系统分析师 目录

文章目录系统分析师 第一章 绪论系统分析师 第二章 经济管理与应用数学系统分析师 第三章 操作系统基本原理系统分析师 第四章 数据通信与计算机网络系统分析师 第五章 数据库系统系统分析师 第六章 系统配置与性能评价系统分析师 第七章 企业信息化系统分析师 第八章 软件工程…...

技术博主都在悄悄用的Perplexity高级搜索语法,11个未公开符号组合全曝光

更多请点击: https://kaifayun.com 第一章:Perplexity高级搜索语法的底层逻辑与设计哲学 Perplexity 的高级搜索语法并非简单的关键词匹配扩展,而是基于语义意图建模与查询图谱重构的设计实践。其核心在于将用户自然语言查询实时编译为可执行…...

TranslucentTB完全指南:轻松实现Windows任务栏透明化的终极方案

TranslucentTB完全指南:轻松实现Windows任务栏透明化的终极方案 【免费下载链接】TranslucentTB A lightweight utility that makes the Windows taskbar translucent/transparent. 项目地址: https://gitcode.com/gh_mirrors/tr/TranslucentTB 想要让Window…...

Nodejs后端服务接入Taotoken实现AI功能的具体配置步骤

🚀 告别海外账号与网络限制!稳定直连全球优质大模型,限时半价接入中。 👉 点击领取海量免费额度 Node.js 后端服务接入 Taotoken 实现 AI 功能的具体配置步骤 对于 Node.js 开发者而言,将大模型能力集成到后端服务中&…...

深度扒一扒GEO(生成式引擎优化)的底层技术架构

Gartner预测2026年传统搜索流量将下降25%,而国内生成式AI用户已破5亿。 当你的潜在客户都在问豆包、Kimi或DeepSeek“哪个牌子好”时,你的官网排名第一还有用吗?没用。因为AI直接给了答案,用户根本没点进来。 这就是GEO&#xff…...

无王无帝定乾坤,来自田间第一人 海棠山铁哥立标兴文脉

无王无帝定乾坤 ——来自田间第一人 一、破题:王权文脉之弊 旧序新局依附王权扎根民间权贵定义苍生共塑礼制浮华守心向善阶级垄断平等普惠文脉若随王朝而兴,必随王朝而竭; 唯有根植人心,方可生生不息。 二、田间崛起:…...