热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

iOS分享到WhatsApp

自定义URL方案添加下面参数来开启whatsapp:,将可开启whatsapp的应用程序,并进行自定义的操作。URL参数开启app-WhatsApp

自定义 URL 方案

添加下面参数来开启whatsapp://,将可开启whatsapp的应用程序,并进行自定义的操作。

URL参数开启
app-WhatsApp Messenger 应用程序
send输入新的对话
文本如有文本内容存在,将会预先填入对话屏幕的消息文本输入字段。

在 Objective-C 开启下列 URL 的呼叫命令:

text = [text stringByAddingPercentEncodingWithAllowedCharacters:[NSCharacterSet URLQueryAllowedCharacterSet]];
NSString *charactersToEscape &#61; &#64;"?!&#64;#$^&%*&#43;,:;&#61;&#39;\"&#96;<>()[]{}/\\| ";
NSCharacterSet *allowedCharacters &#61; [[NSCharacterSet characterSetWithCharactersInString:charactersToEscape] invertedSet];
text &#61; [text stringByAddingPercentEncodingWithAllowedCharacters:allowedCharacters];
url &#61; [NSString stringWithFormat:&#64;"whatsapp://send?text&#61;%&#64;", text];
[[UIApplication sharedApplication] openURL:[NSURL URLWithString:url] options:&#64;{} completionHandler:nil];

在应用程序的Info.plist 文件中 LSApplicationQueriesSchemes 项下加入whatsapp。

注意&#xff1a;

iOS 15限制了配置的URL Scheme不可以超过50个。

共享扩展

共享扩展功能随 iOS 8.0 推出&#xff0c;方便用户 iPhone 手机中安装的任何应用程序与其它应用程序共享内容。这是目前将用户内容与 WhatsApp 共享的首选方式。如要使用共享扩展功能&#xff0c;请创建 UIActivityViewController 的实例&#xff0c;在应用中呈现。WhatsApp 接受下列类型的内容&#xff1a;

  • 文本&#xff08;UTI&#xff1a;public.plain-text&#xff09;
  • 照片&#xff08;UTI: public.image&#xff09;
  • 视频&#xff08;UTI: public.movie&#xff09;
  • 音频备忘录与音乐文件&#xff08;UTI: public.audio&#xff09;
  • PDF 文档&#xff08;UTI: com.adobe.pdf&#xff09;
  • 联系人名片&#xff08;UTI: public.vcar&#xff09;
  • 网页 URL&#xff08;UTI: public.url&#xff09;

UIImage *image &#61; [UIImage imageWithContentsOfFile:localpath];
NSString *savePath &#61; [kCachesPath stringByAppendingPathComponent:&#64;"whatsAppTmp.wai"];
[UIImageJPEGRepresentation(image, 0.8) writeToFile:savePath atomically:YES];NSArray *activityItems &#61; &#64;[[NSURL fileURLWithPath:savePath]];
UIActivityViewController *ctrl &#61; [[UIActivityViewController alloc] initWithActivityItems:activityItems applicationActivities:nil];
ctrl.excludedActivityTypes &#61; &#64;[UIActivityTypePostToWeibo,UIActivityTypePrint,UIActivityTypeCopyToPasteboard,UIActivityTypeAssignToContact,UIActivityTypeSaveToCameraRoll,UIActivityTypeAddToReadingList,UIActivityTypePostToFlickr,UIActivityTypePostToVimeo,UIActivityTypePostToTencentWeibo,UIActivityTypeAirDrop];[viewController presentViewController:ctrl animated:YES completion:nil];

文档交互

如过希望经 WhatsApp 共享照片、视频、或音频备忘录这些媒体文件&#xff0c;可使用文档交互 Document Interaction API 来发送媒体文件到 WhatsApp 联系人与群组。

WhatsApp Messenger 可处理下列各种媒体文件&#xff1a;

  • 任何符合 public.image 类型格式的图像文件格式&#xff08;例如 PNG 或 JPEG&#xff09;
  • 任何符合 public.movie 类型的视频文件格式&#xff08;例如 MPEG-4 视频&#xff09;
  • 音频文件&#xff08;只接受 MPEG-3、MPEG-4、AIFF、AIFF-C、与 Core Audio 格式&#xff09;

如只想在应用列表中显示 WhatsApp&#xff0c;而不是将 WhatsApp 与其它符合 public/* 要求条件的应用程序一起呈现&#xff0c;可将上面这些格式的文件与 WhatsApp 不处理的文件扩展名相连后存储&#xff1a;

  • 图像 - «.wai»&#xff0c;这是 net.whatsapp.image 的文件类型
  • 视频 - «.wam»&#xff0c;这是 net.whatsapp.movie 的文件类型
  • 音频文件 - «.waa»&#xff0c;这是 net.whatsapp.audio 的文件类型

推荐阅读
  • 本文介绍了在iOS开发中使用UITextField实现字符限制的方法,包括利用代理方法和使用BNTextField-Limit库的实现策略。通过这些方法,开发者可以方便地限制UITextField的字符个数和输入规则。 ... [详细]
  • IOS开发之短信发送与拨打电话的方法详解
    本文详细介绍了在IOS开发中实现短信发送和拨打电话的两种方式,一种是使用系统底层发送,虽然无法自定义短信内容和返回原应用,但是简单方便;另一种是使用第三方框架发送,需要导入MessageUI头文件,并遵守MFMessageComposeViewControllerDelegate协议,可以实现自定义短信内容和返回原应用的功能。 ... [详细]
  • 后台获取视图对应的字符串
    1.帮助类后台获取视图对应的字符串publicclassViewHelper{将View输出为字符串(注:不会执行对应的ac ... [详细]
  • 《数据结构》学习笔记3——串匹配算法性能评估
    本文主要讨论串匹配算法的性能评估,包括模式匹配、字符种类数量、算法复杂度等内容。通过借助C++中的头文件和库,可以实现对串的匹配操作。其中蛮力算法的复杂度为O(m*n),通过随机取出长度为m的子串作为模式P,在文本T中进行匹配,统计平均复杂度。对于成功和失败的匹配分别进行测试,分析其平均复杂度。详情请参考相关学习资源。 ... [详细]
  • iOS Swift中如何实现自动登录?
    本文介绍了在iOS Swift中如何实现自动登录的方法,包括使用故事板、SWRevealViewController等技术,以及解决用户注销后重新登录自动跳转到主页的问题。 ... [详细]
  • 在Android开发中,使用Picasso库可以实现对网络图片的等比例缩放。本文介绍了使用Picasso库进行图片缩放的方法,并提供了具体的代码实现。通过获取图片的宽高,计算目标宽度和高度,并创建新图实现等比例缩放。 ... [详细]
  • SpringBoot uri统一权限管理的实现方法及步骤详解
    本文详细介绍了SpringBoot中实现uri统一权限管理的方法,包括表结构定义、自动统计URI并自动删除脏数据、程序启动加载等步骤。通过该方法可以提高系统的安全性,实现对系统任意接口的权限拦截验证。 ... [详细]
  • 本文讨论了如何在不使用SearchBar display controller的情况下,单独使用SearchBar并捕获其textChange事件。作者介绍了实际状况,即左侧SliderMenu中的SearchBar需要在主页TableView中显示搜索结果。然后,作者提供了解决方案和步骤,帮助读者实现这一功能。 ... [详细]
  • 1,关于死锁的理解死锁,我们可以简单的理解为是两个线程同时使用同一资源,两个线程又得不到相应的资源而造成永无相互等待的情况。 2,模拟死锁背景介绍:我们创建一个朋友 ... [详细]
  • 动态规划算法的基本步骤及最长递增子序列问题详解
    本文详细介绍了动态规划算法的基本步骤,包括划分阶段、选择状态、决策和状态转移方程,并以最长递增子序列问题为例进行了详细解析。动态规划算法的有效性依赖于问题本身所具有的最优子结构性质和子问题重叠性质。通过将子问题的解保存在一个表中,在以后尽可能多地利用这些子问题的解,从而提高算法的效率。 ... [详细]
  • CF:3D City Model(小思维)问题解析和代码实现
    本文通过解析CF:3D City Model问题,介绍了问题的背景和要求,并给出了相应的代码实现。该问题涉及到在一个矩形的网格上建造城市的情景,每个网格单元可以作为建筑的基础,建筑由多个立方体叠加而成。文章详细讲解了问题的解决思路,并给出了相应的代码实现供读者参考。 ... [详细]
  • ScrollView嵌套Collectionview无痕衔接四向滚动,支持自定义TitleView
    本文介绍了如何实现ScrollView嵌套Collectionview无痕衔接四向滚动,并支持自定义TitleView。通过使用MainScrollView作为最底层,headView作为上部分,TitleView作为中间部分,Collectionview作为下面部分,实现了滚动效果。同时还介绍了使用runtime拦截_notifyDidScroll方法来实现滚动代理的方法。具体实现代码可以在github地址中找到。 ... [详细]
  • 本文介绍了MVP架构模式及其在国庆技术博客中的应用。MVP架构模式是一种演变自MVC架构的新模式,其中View和Model之间的通信通过Presenter进行。相比MVC架构,MVP架构将交互逻辑放在Presenter内部,而View直接从Model中读取数据而不是通过Controller。本文还探讨了MVP架构在国庆技术博客中的具体应用。 ... [详细]
  • Todayatworksomeonetriedtoconvincemethat:今天在工作中有人试图说服我:{$obj->getTableInfo()}isfine ... [详细]
  • Asp.net Mvc Framework 七 (Filter及其执行顺序) 的应用示例
    本文介绍了在Asp.net Mvc中应用Filter功能进行登录判断、用户权限控制、输出缓存、防盗链、防蜘蛛、本地化设置等操作的示例,并解释了Filter的执行顺序。通过示例代码,详细说明了如何使用Filter来实现这些功能。 ... [详细]
author-avatar
Miany_201314
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有