내 플러그인은 Google 요청을 한 다음 다른 페이지의 HTML 콘텐츠를 표시해야합니다.
QuickLook이 네트워크 액세스를 지원해야하지만 지금까지 HTML 만 표시 할 수있었습니다!
kng 가 페이지 가져 오기 (.webloc 뷰어 구축)를 시도했지만 운이 없었지만 README에서 말했습니다.
Lion의 Quicklook은 이제이 프로젝트에서 시도한 작업을 수행합니다.
나는 Mountain Lion을 가지고 있으며 아래와 같이 비슷한 패턴을 적용했지만 여전히 운이 없습니다. 웹상의 어느 누구도 QuickLook 플러그인에서 URL에 액세스를 시도한 적이없는 것 같습니다. Apple에서 제공하는 문서화되지 않은 WebLoc 플러그인 외에. 또한 QuickLook 프로그래밍 가이드는 4 년이되었습니다 .
내가 시도한 것 :
OSStatus GeneratePreviewForURL(void *thisInterface,
QLPreviewRequestRef preview,
CFURLRef url,
CFStringRef contentTypeUTI,
CFDictionaryRef options)
{
if (QLPreviewRequestIsCancelled(preview))
return noErr;
//// Fetch Web Page
NSData *data;
NSError *err;
/// Attempt 0: static HTML -- ok
//NSString *html = @"<html><body><h1>It works!</h1></body></html>";
/// Attempt 1: dataWithContentsOfURL -- ko
data = [NSData dataWithContentsOfURL:[NSURL URLWithString:@"http://google.com/"] options:NSDataReadingUncached error:&err];
/// Attempt 2: NSURLConnection -- ko
//NSURLRequest *urlRequest = [NSURLRequest requestWithURL:[NSURL URLWithString:@"http://google.com/"]];
//NSURLResponse *response;
//data = [NSURLConnection sendSynchronousRequest:urlRequest returningResponse:&response error:&err];
// Builds /Users/pete/out.txt on error
NSString *html = [[NSString alloc] initWithData:(NSData *)data encoding:NSUTF8StringEncoding];
[err.description writeToFile:@"/Users/pete/out.txt" atomically:YES encoding:NSUTF8StringEncoding error:nil];
//// Display HTML
NSMutableDictionary *props;
[props setObject:@"UTF-8" forKey:(NSString *)kQLPreviewPropertyTextEncodingNameKey];
[props setObject:@"text/html" forKey:(NSString *)kQLPreviewPropertyMIMETypeKey];
QLPreviewRequestSetDataRepresentation(preview,
(__bridge CFDataRef)[html dataUsingEncoding:NSUTF8StringEncoding],
kUTTypeHTML,
(__bridge CFDictionaryRef)props);
return noErr;
}
전체 코드 및 환경 은 여기에서 찾을 수 있습니다.
보안상의 이유로 Quick Look 플러그인은 네트워크 요청을 수행 할 수 없습니다. 사실, 당신의 플러그인은 샌드 박스로되어 있으며 미리 보려는 파일에만 액세스 할 수 있어야합니다 (물론 플러그인에 필요한 프레임 워크에 추가).
이 기사는 인터넷에서 수집됩니다. 재 인쇄 할 때 출처를 알려주십시오.
침해가 발생한 경우 연락 주시기 바랍니다[email protected] 삭제
몇 마디 만하겠습니다