我正在创建一个应用程序,向您显示已安装的所有应用程序的列表,然后当我选择时,我想在我的设备中启动该应用程序。我正在使用以下代码
- (IBAction)openapp:(NSString*)app
{
urlString = [[NSString alloc]initWithFormat:@"%@:",app.accessibilityLabel];//init string with app name and append it to ":"
[urlString stringByReplacingOccurrencesOfString:@" "withString:@""];//remove all spaces
[[UIApplication sharedApplication] openURL:[NSURL URLWithString:urlString]];//open URL with scheme
}
在某些情况下,该方案与应用程序的名称相同,但有时会失败,因为它不是(例如 - facebook scheme = fb)。所以,我需要从某个地方获得应用程序的方案。此外,我不能只创建一个NSString并在那里分配一个固定的方案,因为我将打开的应用程序将从一个设备更改为设备。 任何人都可以帮助我吗?
答案 0 :(得分:1)
由于应用程序的沙箱性质意味着所需信息不可读,我认为这是不可能的。我也找不到任何Apple整理列表的参考。
来自Apple Docs的引用虽然没有结论,但暗示它是不可能的,因为它甚至无法确定哪个应用程序(如果有的话)会打开。
**注意:如果有多个第三方应用注册处理相同的URL方案,则目前没有确定将为该方案提供哪个应用的流程。
如果您已经知道要安装哪些应用程序,则此方法应返回YES:
[[UIApplication sharedApplication] canOpenURL:[NSURL URLWithString:@"myScheme://"]