2014-09-04 49 views
9

有没有办法获得设备上所有应用程序的所有网址方案?他们必须有一个中央存储库,也许是一个plist?获取设备上的所有iOS网址方案

+0

http://stackoverflow.com/questions/5667920/iphone-apps-that-supports-url-schema - dup? – cDima 2014-09-04 18:17:38

+0

我不认为这是一个重复,我想在我的应用程序的设备上的所有可用的网址计划生成一个列表。该应用程序是一种销售工具,我们正试图将其链接到我们构建的另外两个应用程序 - 但有些人可能没有安装它们。该帖子只是寻找其他应用程序的网址计划,如Facebook – PruitIgoe 2014-09-04 18:30:57

+1

为什么不检查是否可以在做之前打开该网址? '[[UIApplication sharedApplication] canOpenURL:@“”];' – danielbeard 2014-09-04 18:46:51

回答

0

如果是编程式,我不知道。

这里回答您问题相关的(不完全)

Find out an app's URL programmatically

但手动,您的装置 -

是...

有一种方式来获得通过此过程设备上所有应用程序的url方案。在你的系统上安装ifunbox。连接您的设备,打开用户应用程序并打开您正在尝试查找网址方案的应用程序。你会发现应用程序的主文件夹,在该文件夹中,你会发现该应用程序的info.plist。打开info.plist并检查最后一列中的url方案地址。

它为我工作。你会发现一些注册了url方案的应用程序的url方案。

这里是一些应用程序的URL方案地址的一些链接(可能节省您的时间)。

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

+0

我需要以编程的方式执行它。构建企业应用程序并查看是否安装了一些相关的应用程序。 – PruitIgoe 2014-09-04 18:31:27

+0

你怎么找到相关的应用程序?你的意思是基于URL方案或功能。我很困惑的应用程序或类似密码的URL方案。你怎么能找到基于url方案的应用程序的功能? @PruitIgoe – Avis 2014-09-04 18:35:18

+0

这两个链接都被打破了 – 2017-04-21 21:29:16

0

这不是正式由苹果API不越狱

一种解决方法可能是跳车怎么知道哪些应用推出,并支持URL方案支持: http://danielamitay.com/blog/2011/2/16/how-to-detect-installed-ios-apps

+0

这是更接近,但你必须知道应用程序的url方案或看到设备上运行的应用程序(用户不关闭它,但它坐落在后台)。我已经知道我正在寻找的应用程序的url方案(它们是我们已经控制的应用程序),但我只想看看我是否可以通过编程来实现。 – PruitIgoe 2014-09-04 23:48:20

+1

你无法编程实现tyat查找的原因是它是苹果公司实现的一项安全功能,主要是针对每个应用程序的沙箱。如果所有应用程序都知道您安装了其他应用程序(方案),则会被视为风险,例如将您指定为银行,PayPal或密码应用程序。 – cDima 2014-09-06 04:20:40

0

我会在这里随心所欲地假设你正在尝试做以下事情:

  1. 你在你的应用程序中有PDF。
  2. 你想检查(编程)看看是否有其他应用程序可以打开PDF文件。
  3. 如果是这样,请使用该应用程序打开PDF。

如果你想这样做,你不必手动做第2步。事实上,你不能。但是,您可以使用UIDocumentInteractionController类来呈现兼容应用程序的菜单。

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

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

+0

它不适用于iOS 11 – 2018-01-17 12:40:11

9

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

因为我知道什么应用我要找:

  1. 使用我的电脑
  2. 将应用程序复制到我的桌面从iTunes下载的.ipa
  3. 重命名为* .zip文件
  4. 提取* .zip
  5. 打开'有效负载'文件夹
  6. 右键单击应用程序并选择'显示包装内容'
  7. 我然后双击 '的Info.plist' 文件(该文件的Xcode应该再打开)
  8. 然后选中 'URL类型'> '项目0'> 'URL方案'

使用该信息然后我将它添加到一组应用程序中来检查(做@danielbeard建议的)。

希望这可以帮助未来的人。

+0

正确的不一定位于“URL类型”中的项目0中 – shim 2016-07-28 06:03:36

+0

由于iTunes 12.7于2017年9月发布,因此无法再通过计算机上的iTunes访问应用程序。苹果再一次从根本上改变了他们整个生态系统工程的重要组成部分。这应该可能会更新。 – rolinger 2017-11-04 16:56:04