获取iPhone / iPad屏幕上显示的文本

时间:2011-09-14 15:13:06

标签: iphone ios ipad text screen

我想知道是否可以截取iPhone或iPad屏幕上显示的所有文字。我们希望收集移动设备上使用的所有常用字词。 如果有人可以提供帮助,请告诉我。

3 个答案:

答案 0 :(得分:2)

不,这是不可能的。在iOS,WebKit和Core Text中绘制文本有两种主要方式。你需要劫持这些调用(在WebKit的情况下,劫持其内部数据结构)。即使在你自己的程序中也没有实际的方法来攻击它(更不用说尝试在系统级别进行攻击)。我甚至不相信在越狱装置上有一种实用的方法来攻击它。

我在想象这些信息的实际用例时遇到了一些困难,但如果它足够有价值,我会聘请某人手工截取屏幕并OCR。

答案 1 :(得分:0)

我不确定我理解你的问题。你的意思是每个应用程序上显示的文字? 答案是否定的。

如果您想阅读您自己的应用中的每个UILabel文字,您可以递归浏览视图层次结构并检测每个UILabel。例如:

- (void)printLabelTextsRecursive:(UIView *)view {
    if ([view isKindOfClass:[UILabel class]]) {
        NSLog(@"Label: %@", ((UILabel *)(view)).text)
    } else {
        for (UIView *subView in view.subViews) {
            [self printLabelTextsRecursive:subView];
        }
    }
}

并使用UIWindow类中的AppDelegate进行调用,例如:

[self printLabelTextsRecursive:self.window];

答案 2 :(得分:0)

嗯,没有办法为未破解的iphone做到这一点,因为每个应用程序都是在自己的沙盒中启动的。应用无法相互通信。

对于越狱的iphone,可能有办法。只想到苹果的声音 - 它会读取用户触摸的所有内容。所以必须有办法。什么可能对你有所帮助:

  • http://chrisalvares.com/blog/?p=7(关于如何在越狱的iPhone上创建守护进程的指南)
  • 看一下ios的私有框架 - 有一些以“screenreader”开头。您可以使用class-dump-z查看其标题。