iOS:检测我的SDK是否已安装在设备上的其他应用程序上

亚当·马坦|

我正在为移动设备开发基于位置的Q&A SDK。

当询问有关特定位置的问题时,服务器端将最相关的用户作为目标并将该问题发送给该用户。如果用户未能回答,则将问题发送给第二好的用户,依此类推。

问题是我的SDK可能安装在设备上的多个应用程序上,这意味着用户可以多次获得一个问题。

有没有一种方法可以检测我的SDK是否安装在多个应用程序中?我以为将UDID发送到服务器可能可行,但是iOS UDID在应用程序之间有所不同

阿图尔杰夫

您可以使用UIPasteboard在设备上的应用程序之间共享数据。

UIPasteboard类使一个应用程序可以在该应用程序内以及与另一个应用程序共享数据。要与其他任何应用共享数据,可以使用系统范围内的粘贴板;要与具有与您的应用程序相同的团队ID的另一个应用程序共享数据,可以使用特定于应用程序的粘贴板。

在您的SDK中,执行以下操作:

@interface SDKDetector : NSObject

@end

@implementation SDKDetector

+ (void)load
{
    int numberOfApps = (int)[self numberOfAppsInDeviceUsingSDK];
    NSLog(@"Number of apps using sdk:%d", numberOfApps);
}

+ (NSInteger)numberOfAppsInDeviceUsingSDK
{
    static NSString *pasteboardType = @"mySDKPasteboardUniqueKey";

    NSData *value = [[UIPasteboard generalPasteboard] valueForPasteboardType:pasteboardType];
    NSMutableArray *storedData = [[NSKeyedUnarchiver unarchiveObjectWithData:value] mutableCopy];

    if (!storedData) {
        storedData = [NSMutableArray new];
    }

    NSString *bundleId = [[NSBundle mainBundle] bundleIdentifier];
    if (![storedData containsObject:bundleId]) {
        [storedData addObject:[[NSBundle mainBundle] bundleIdentifier]];
    }

    value = [NSKeyedArchiver archivedDataWithRootObject:storedData];
    [[UIPasteboard generalPasteboard] setData:value forPasteboardType:pasteboardType];

    return [storedData count];
}

@end

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

检测iOS设备上是否安装了其他应用程序

来自分类Dev

检查我的应用程序是否已安装在Windows Phone上

来自分类Dev

无法在其他Android设备上安装我的应用程序

来自分类Dev

iOS 今日扩展是否与主机应用程序一起自动安装在用户的设备上?

来自分类Dev

将 iOS 应用程序限制为仅安装在一台设备上

来自分类Dev

如何在已部署的Heroku应用程序上安装我的Bower依赖项?

来自分类Dev

我的iOS应用安装在多少设备上

来自分类Dev

如何收听其他应用程序上的事件?

来自分类Dev

检测程序是否安装在机器上

来自分类Dev

检测程序是否安装在机器上

来自分类Dev

Ionic在Android设备上获取已安装的应用程序

来自分类Dev

为什么两个使用鸟巢sdk的不同应用程序未安装在同一设备上?

来自分类Dev

如何使用jsp检查应用程序是否已安装在移动设备中?

来自分类Dev

iOS应用程序上的电报

来自分类Dev

在我的设备上安装iPhone应用程序

来自分类Dev

使用Python在Mac上的应用程序上打开时,如何给其他参数?

来自分类Dev

使用Python在Mac上的应用程序上打开时,如何给其他参数?

来自分类Dev

有没有一种方法可以通过Javascript检测是否在(Android \ iOS)设备上安装了特定应用程序?

来自分类Dev

如何在我设备的所有应用程序上应用模式锁定?

来自分类Dev

企业分发的应用程序将无法安装在某些设备上

来自分类Dev

如何在列表中获取所有共享应用程序(安装在设备上)?

来自分类Dev

如何在列表中获取所有共享应用程序(安装在设备上)?

来自分类Dev

如何更改安装在多个设备上的应用程序的sqlite数据库?

来自分类Dev

具有不同包名的 Android 应用程序无法安装在同一设备上。

来自分类Dev

具有不同包名的 Android 应用程序无法安装在同一设备上。

来自分类Dev

应用程序可在某些设备上运行,但在其他设备上崩溃

来自分类Dev

应用程序已安装在Android Lollipop上,但无法运行

来自分类Dev

混合应用程序可以访问设备上的其他应用程序吗?

来自分类Dev

iPhone 5屏幕在我的应用程序中为黑色,但在其他应用程序上运行正常,未记录任何错误消息

Related 相关文章

  1. 1

    检测iOS设备上是否安装了其他应用程序

  2. 2

    检查我的应用程序是否已安装在Windows Phone上

  3. 3

    无法在其他Android设备上安装我的应用程序

  4. 4

    iOS 今日扩展是否与主机应用程序一起自动安装在用户的设备上?

  5. 5

    将 iOS 应用程序限制为仅安装在一台设备上

  6. 6

    如何在已部署的Heroku应用程序上安装我的Bower依赖项?

  7. 7

    我的iOS应用安装在多少设备上

  8. 8

    如何收听其他应用程序上的事件?

  9. 9

    检测程序是否安装在机器上

  10. 10

    检测程序是否安装在机器上

  11. 11

    Ionic在Android设备上获取已安装的应用程序

  12. 12

    为什么两个使用鸟巢sdk的不同应用程序未安装在同一设备上?

  13. 13

    如何使用jsp检查应用程序是否已安装在移动设备中?

  14. 14

    iOS应用程序上的电报

  15. 15

    在我的设备上安装iPhone应用程序

  16. 16

    使用Python在Mac上的应用程序上打开时,如何给其他参数?

  17. 17

    使用Python在Mac上的应用程序上打开时,如何给其他参数?

  18. 18

    有没有一种方法可以通过Javascript检测是否在(Android \ iOS)设备上安装了特定应用程序?

  19. 19

    如何在我设备的所有应用程序上应用模式锁定?

  20. 20

    企业分发的应用程序将无法安装在某些设备上

  21. 21

    如何在列表中获取所有共享应用程序(安装在设备上)?

  22. 22

    如何在列表中获取所有共享应用程序(安装在设备上)?

  23. 23

    如何更改安装在多个设备上的应用程序的sqlite数据库?

  24. 24

    具有不同包名的 Android 应用程序无法安装在同一设备上。

  25. 25

    具有不同包名的 Android 应用程序无法安装在同一设备上。

  26. 26

    应用程序可在某些设备上运行,但在其他设备上崩溃

  27. 27

    应用程序已安装在Android Lollipop上,但无法运行

  28. 28

    混合应用程序可以访问设备上的其他应用程序吗?

  29. 29

    iPhone 5屏幕在我的应用程序中为黑色,但在其他应用程序上运行正常,未记录任何错误消息

热门标签

归档