Ios 使用UIActivityViewController提供不同格式的数据
在我的应用程序中,我想分享购物清单。比方说,我想以两种不同的方式分享购物清单:Ios 使用UIActivityViewController提供不同格式的数据,ios,objective-c,email,uiactivityviewcontroller,airdrop,Ios,Objective C,Email,Uiactivityviewcontroller,Airdrop,在我的应用程序中,我想分享购物清单。比方说,我想以两种不同的方式分享购物清单: 通过带有模式url的空投,将在另一台设备上启动我的应用程序,接收应用程序将共享项目添加到其购物列表中 通过电子邮件,发送一封电子邮件,将购物清单上的项目作为HTML文档以表格格式发送 因此,根据活动类型是空投还是电子邮件,基本上有两种不同的字符串可供共享。下面的代码不起作用,因为它始终是已发送的架构URL,即使对于电子邮件: url = [@"myapp://shoppinglist?apple=12&ora
模式url的空投
,将在另一台设备上启动我的应用程序,接收应用程序将共享项目添加到其购物列表中
电子邮件
,发送一封电子邮件
,将购物清单上的项目作为HTML文档
以表格格式发送空投
还是电子邮件
,基本上有两种不同的字符串可供共享。下面的代码不起作用,因为它始终是已发送的架构URL
,即使对于电子邮件
:
url = [@"myapp://shoppinglist?apple=12&orange=5" stringByAddingPercentEscapesUsingEncoding:NSUTF8StringEncoding];
UIActivityViewController *controller = [[UIActivityViewController alloc] initWithActivityItems:@[url] applicationActivities:nil];
[self presentViewController:controller animated:NO completion:nil];
我挖了一点,但找不到如何根据共享的方法发送不同的内容
我的问题是如何使用
UIActivityViewController
执行我在这里描述的操作?或者它是否可行-是UIActivityViewController
用于此目的,还是具有执行此操作的灵活性?您希望创建并共享符合的两个对象,其中一个返回HTML,另一个返回URL。然后,当调用请求该项的代理回调时,您检查选择了哪种活动类型(Facebook、Mail、AirDrop等),如果该项不适用,则让其中一个或另一个返回nil
因此,在空投的情况下,只有URL的项目源将返回非nil值。您可以查看以获得一些如何实现UIActivityItemSource的示例