首頁>Program>source

是否可以通過程式設計方式找出我的iOS設備上安裝的所有應用的名稱? 有相同的API吗?

感谢帮助

最新回復
  • 5月前
    1 #

    否,由於沙盒環境,iOS應用程式無法訪問/有關其他應用程式的資訊。

  • 5月前
    2 #

    是的,有可能获得列表 所有已安裝的應用程式

    -(void) allInstalledApp
    {    
        NSDictionary *cacheDict;
        NSDictionary *user;
        static NSString *const cacheFileName = @"com.apple.mobile.installation.plist";
        NSString *relativeCachePath = [[@"Library" stringByAppendingPathComponent: @"Caches"] stringByAppendingPathComponent: cacheFileName];
        NSString *path = [[NSHomeDirectory() stringByAppendingPathComponent: @"../.."] stringByAppendingPathComponent: relativeCachePath];
        cacheDict    = [NSDictionary dictionaryWithContentsOfFile: path];
        user = [cacheDict objectForKey: @"User"];
        NSDictionary *systemApp=[cacheDict objectForKey:@"System"];
    }  
    

    systemApp Dictionary 包含所有与系統相關的應用程式的列表 和 user Dictionary 包含其他應用資訊。

  • 5月前
    3 #

    不是来自設備.但是,您可以从桌面上窥视iTunes庫。

  • 5月前
    4 #

    有一些方法可以在没有越狱設備的情况下完成此操作,並且不会使您的應用程式被拒绝。
    1.获取当前正在執行的程序的列表,請參见此答案.您需要將流程名稱轉換為應用名稱。
    2.檢查是否有任何應用程式已使用UIApplicationDelegate canOpenURL註册了唯一的URL方案.有几个站點在編目已知的url方案,這是最好的方案.

    如果應用当前未執行,並且未註册自定義網址方案,則這些方法將不会檢測到该應用.我有兴趣听到一種方法,它可以在應用商店中得到更好的應用.

  • 5月前
    5 #

    您可以通過使用 canOpenURL檢查是否已安裝應用程式来完成此操作 方法或通過檢查後台程序,並將其与您感兴趣的應用程式的名稱进行匹配。

  • java:為什麼將空引用print為"空"
  • iPhone 5 + iOS6將如何決定是否必须在信箱模式下執行應用程式