在设备上获取所有iOS网址方案

时间:2014-09-04 18:13:41

标签: ios url-scheme

有没有办法获取设备上所有应用的所有网址方案?在某个地方必须有一个中央存储库,也许是一个plist?

5 个答案:

答案 0 :(得分:11)

添加我的解决方案以防有人仍在寻找。在花了一些时间研究答案之后,我完成了@ danielbeard和@Avis'解决方案之间的混合。

因为我知道我在寻找什么样的应用程序:

  1. 使用我的电脑从iTunes下载.ipa
  2. 将应用程序复制到我的桌面
  3. 将其重命名为* .zip
  4. 提取* .zip
  5. 打开“Payload”文件夹
  6. 右键单击该应用程序,然后选择“显示包内容”
  7. 然后我双击'Info.plist'文件(Xcode应该打开)
  8. 然后检查'网址类型'> '项目0'> 'URL Schemes'
  9. 使用该信息,然后将其添加到应用程序数组中进行检查(执行@danielbeard建议的操作)。

    希望这有助于将来。

答案 1 :(得分:2)

如果以编程方式进行,我就不知道了。

这里是与您的问题相关的答案(不完全是)

Find out an app's URL programmatically

但手动,在您的设备上 -

是...

有一种方法可以通过此过程获取设备上所有应用的网址方案。在您的系统上安装ifunbox。连接您的设备,打开用户应用程序并打开您尝试查找网址方案的应用程序。你会找到应用程序主文件夹,在该文件夹中你会找到该应用程序的info.plist。打开info.plist并检查最后一栏中的网址方案地址。

它对我有用。你会发现一些注册了网址方案的应用程序的网址方案。

这里有一些针对某些应用的网址方案地址的链接。(可能会节省您的时间)。

1。http://handleopenurl.com/ 2。http://wiki.akosma.com/IPhone_URL_Schemes

答案 2 :(得分:2)

是的,您可以使用私人API。第一

@interface PrivateApi_LSApplicationWorkspace
- (NSArray*)privateURLSchemes;
- (NSArray*)publicURLSchemes;
@end

然后使用它:

PrivateApi_LSApplicationWorkspace* _workspace;
_workspace = [NSClassFromString(@"LSApplicationWorkspace") new];
- (NSArray*)privateURLSchemes
{
    return [_workspace privateURLSchemes];
}

- (NSArray*)publicURLSchemes
{
    return [_workspace publicURLSchemes];
}

检查https://github.com/wujianguo/iOSAppsInfo

答案 3 :(得分:0)

没有越狱的Apple API没有正式支持

解决方法可能是Bump如何知道启动了哪些应用并支持URL方案: http://danielamitay.com/blog/2011/2/16/how-to-detect-installed-ios-apps

答案 4 :(得分:0)

我会在这里突发奇想,并假设你正在努力做到以下几点:

  1. 您的应用中有PDF。
  2. 您想(以编程方式)检查是否有任何其他应用可以打开PDF文件。
  3. 如果是这样,请使用该应用打开PDF。
  4. 如果要执行此操作,则无需手动执行步骤2。事实上,你做不到。但是,您可以使用UIDocumentInteractionController类来展示兼容应用的菜单。

    这是您“检查”手机上安装的其他应用的唯一方法。至少在iOS 7及以下版本。