将Web内容从safari复制到可信的UIWebView时过滤UIPasteboard

时间:2012-04-20 07:24:22

标签: iphone ios uiwebview contenteditable uipasteboard

我的应用是一个丰富的编辑器,它使用UIWebView和HTML5的contenteditable功能。

现在,当网页内容包含任何图片时,我的应用在处理将网页内容从safari复制到我的UIWebView时遇到了一些问题。我想将<img>中的图片html标记UIPasteboard替换为我的一些图片。

但是,当我使用以下代码检查粘贴板时,粘贴板中有 NO 任何图像。但从safari复制/粘贴图像到我的应用程序工作正常。

UIPasteboard *pasteboard = [UIPasteboard generalPasteboard];
NSLog(@"clip board strings = %@", pasteboard.strings);
NSLog(@"clip board urls = %@", pasteboard.URLs);
NSLog(@"clip board images = %@", pasteboard.images);

如果我复制一些图像&amp;来自safari的文本然后打开我的应用程序,NSLog如下:

2012-04-20 14:53:37.558  clip board strings = (
    "text"
)
2012-04-20 14:53:37.559 [46800:17903] clip board urls = (
)
2012-04-20 14:53:37.559 [46800:17903] clip board images = (null)

我想问一下,如何从UIPasteboard获取图像信息以及如何操作它?

提前致谢。

1 个答案:

答案 0 :(得分:1)

您可以使用以下方法从粘贴板中提取图像:

UIImage *image = [UIPasteboard generalPasteboard].image; 

您可以使用以下方法检查粘贴板是否包含图像文件:

BOOL imgPasteBoard= [[pasteboard pasteboardTypes] containsObject:@"public.png"]; 

然后检查bool值。您也可以尝试使用此代码

[[UIPasteboard generalPasteboard] containsPasteboardTypes:UIPasteboardTypeListImage]; UIPasteboard *pasteboard = [UIPasteboard generalPasteboard];  
if (pasteboard.image!= nil) 
{ 
   [self insertImage:pasteboard.image]; 
   //insert image being a function where you write the code to insert Images to psteboard
} 

希望这可以帮助你..

现在使用以下代码加载UIImage: -

NSData *imageData = UIImagePNGRepresentation(image);
[webView loadData:imageData MIMEType:imageMIMEType textEncodingName:nil baseURL:nil];