有没有办法获取设备上安装的应用程序列表,它能够共享和接收文本数据
Posted
技术标签:
【中文标题】有没有办法获取设备上安装的应用程序列表,它能够共享和接收文本数据【英文标题】:Is there way to get list of installed app on device, which is able to share and receive text data 【发布时间】:2015-06-19 10:17:40 【问题描述】:喜欢与 Whatsapp 共享文本数据的代码如下。 我想知道设备上所有已安装的能够获取文本数据的应用程序,如下面提到的代码。
NSString * msg = @"YOUR MSG"; NSString * urlWhats = [NSString stringWithFormat:@"whatsapp://send?text=%@",msg]; NSURL * whatsappURL = [NSURL URLWithString:[urlWhats stringByAddingPercentEscapesUsingEncoding:NSUTF8StringEncoding]]; if ([[UIApplication sharedApplication] canOpenURL: whatsappURL])
[[UIApplication sharedApplication] openURL: whatsappURL]; else
UIAlertView * alert = [[UIAlertView alloc] initWithTitle:@"WhatsApp not installed." message:@"Your device has no WhatsApp installed." delegate:self cancelButtonTitle:@"OK" otherButtonTitles:nil];
[alert show];
【问题讨论】:
正确的做法是在一个方向使用 ShareSheet,在另一个方向使用 Share Extension 【参考方案1】:与 twitter/facebook 以外的其他社交应用共享文本、数据。你可以试试下面的代码:
NSString *shareString = @"text...";
UIImage *shareImage = [UIImage imageNamed:@"image.png"];
NSURL *shareUrl = [NSURL URLWithString:@"http://www.test.com"];
NSArray *activityItems = [NSArray arrayWithObjects:shareString, shareImage, shareUrl, nil];
UIActivityViewController *activityViewController = [[UIActivityViewController alloc] initWithActivityItems:activityItems applicationActivities:nil];
activityViewController.modalTransitionStyle = UIModalTransitionStyleCoverVertical;
[self presentViewController:activityViewController animated:YES completion:nil];
它将显示显示所有其他文本共享应用程序的活动视图。
或者您也可以创建自定义 UIActivity。 在您的自定义 UIActivity 子类中,您必须简单地覆盖一种方法:
+ (UIActivityCategory)activityCategory
return UIActivityCategoryShare;
【讨论】:
【参考方案2】:有 UIActivityViewController 列出所有应用程序,您可以在其中分享您的文本。您可以通过那里的“更多”选项自定义列表。具有共享扩展名的应用程序也会自动在此处列出。
【讨论】:
以上是关于有没有办法获取设备上安装的应用程序列表,它能够共享和接收文本数据的主要内容,如果未能解决你的问题,请参考以下文章