我们如何知道我们的应用程序是否从iPhone卸载?

5

如果我们的应用程序从iPhone上卸载了,我想知道日期?

4个回答

6

就像其他人已经回答的那样 - 你无法知道。

然而,如果你在你的应用中启用了推送通知,你可以使用APN反馈服务来获取一个非常粗略的想法,看看哪些APN令牌被删除了(假定卸载)。在这个SO帖子中有更多信息:“推送通知”- 反馈,卸载应用

同样,这只应该用于给出一个非常大概的想法,因为用户可能选择退出推送通知,或者用户的令牌由于某种原因发生变化。


4
有一些工具可以帮助你跟踪应用程序的卸载。我发现其中一个很有用,叫做Uninstall tracking - MoEngage。他们会给你一个完整的用户列表,列出卸载了你的应用程序的用户。你还可以推断出是什么原因导致用户卸载了你的应用程序。最好的部分是,你可以通过MoEngage仪表板向那些卸载了你的应用程序的用户发送电子邮件,以便获取反馈或让这些用户重新使用你的应用程序。

2

很抱歉,您无法做到这一点。因为没有办法告诉应用程序是否被删除,苹果也不会追踪卸载的应用程序,供您作为开发人员访问。


我猜你可以为此做一个更新,然后看看你会得到多少更新。那是获取任何数据的一种粗略方式,但仍然是一种方法。 - Christoffer

1

没有直接获取此信息的方法。

但是,您可以通过将第一次下载日期保存在钥匙串或其他文件中,并在需要知道时检索它来完成。

所有钥匙串都存储在设备中,即使删除了应用程序。考虑到您删除了应用程序并再次下载它,您的钥匙串将保持不变,包括第一个日期和时间。

使用此钥匙串或文件,列出应用程序并进行比较以查找缺失的应用程序。

您可以使用一些小技巧来完成此操作。

阅读此文:http://iphonedevsdk.com/forum/iphone-sdk-development/37103-finding-out-what-apps-installed.html

如果您已越狱,可以按以下方式操作:

-(NSMutableArray *)desktopAppsFromDictionary:(NSDictionary *)dictionary{
    NSMutableArray *desktopApps = [NSMutableArray array];

   for (NSString *appKey in dictionary){
      [desktopApps addObject:appKey];
    }
    return desktopApps;
}


-(NSArray *)installedApp{    
   BOOL isDir = NO;
   if([[NSFileManager defaultManager] fileExistsAtPath: installedAppListPath isDirectory: &isDir] && !isDir) 
   {
       NSMutableDictionary *cacheDict = [NSDictionary dictionaryWithContentsOfFile: installedAppListPath];
       NSDictionary *system = [cacheDict objectForKey: @"System"];
       NSMutableArray *installedApp = [NSMutableArray arrayWithArray:[self desktopAppsFromDictionary:system]];

       NSDictionary *user = [cacheDict objectForKey: @"User"]; 
       [installedApp addObjectsFromArray:[self desktopAppsFromDictionary:user]];

       return installedApp;
   }
   return nil;
}

这将有助于他为其他应用程序 - 而不是实际想要了解的应用程序。 - Dejell

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接