原因在UIPasteboard获取粘贴板的类,有的第三方SDK用到了UIPasteboard读取iOS系统的粘贴板内容,所以iOS14此次更新是让用户知晓,此APP读取了你的粘贴板内容,并在读取的时候展示了出来。在iOS14以下APP也是可以读取粘贴板内容的,只是用户看不到。
解决方案:
在APP中将UIPasteboard重新设置个空字符串
[[UIPasteboard generalPasteboard] setString:@""];
当然了只是在APP中清空而已,外面的粘贴板还是不会变的。
可以在应用程序启动时设置。
- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions { // Override point for customization after application launch. [[UIPasteboard generalPasteboard] setString:@""]; return YES; }
如果你的APP在进入后台也会弹的话,也可在重新进入后台是在设置一次
- (void)applicationWillResignActive:(UIApplication *)application { [[UIPasteboard generalPasteboard] setString:@""]; }
这样的话你的应用就读取不到粘贴板啦
当然粘贴板不止字符串一种类型,不过一般情况都是copy字符串类型的。如果需要也可以重新设置下其他类型
image.png
重新设置其他类型
[[UIPasteboard generalPasteboard] setItems:@[]]; [[UIPasteboard generalPasteboard] setObjects:@[]]; [[UIPasteboard generalPasteboard] setColors:@[]]; [[UIPasteboard generalPasteboard] setStrings:@[]]; [[UIPasteboard generalPasteboard] setImages:@[]]; [[UIPasteboard generalPasteboard] setURLs:@[]];