【发布时间】:2011-09-14 15:13:06
【问题描述】:
我想知道是否可以截取 iPhone 或 iPad 屏幕上显示的所有文本。我们希望收集移动设备上使用的所有常用措辞。 如果有人可以提供帮助,请告诉我。
【问题讨论】:
标签: iphone ios ipad text screen
我想知道是否可以截取 iPhone 或 iPad 屏幕上显示的所有文本。我们希望收集移动设备上使用的所有常用措辞。 如果有人可以提供帮助,请告诉我。
【问题讨论】:
标签: iphone ios ipad text screen
不,这是不可能的。 iOS 中绘制文本的方式主要有两种,WebKit 和 Core Text。您需要劫持这些调用(在 WebKit 的情况下,劫持其内部数据结构)。即使在您自己的程序中(更不用说尝试在系统级别进行),也没有实际的方法来攻击它。我什至不相信有一种实用的方法可以在越狱设备上攻击它。
我很难想象这些信息的实际用例,但如果它足够有价值,我会雇人手动截屏并进行 OCR。
【讨论】:
我不确定我是否理解您的问题。您的意思是每个应用程序上显示的文本? 答案是否定的。
如果您想读取您自己的应用程序中的每个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];
}
}
}
并在AppDelegate 类中使用您的UIWindow 调用它,例如:
[self printLabelTextsRecursive:self.window];
【讨论】:
好吧,对于未越狱的 iphone,没有办法做到这一点,因为每个应用程序都是在自己的沙盒中启动的。应用无法相互通信。
对于越狱的 iphone,可能有办法。想想苹果的配音——它会读取用户触摸的所有内容。所以必须有办法。什么可以帮助你:
【讨论】: