iOS在線文件預(yù)覽

在上一篇http://www.reibang.com/p/00e76c936121
中瓮床,我們了解了iOS本地文件預(yù)覽實(shí)現(xiàn)的幾種方式井氢,接下來(lái)我們?cè)谏弦黄幕A(chǔ)之上來(lái)分析一下在線文件的預(yù)覽雷酪。

一、webView####

加載方法:

self.fileURLString = @“文件url地址”;  
openFileWebView = [[UIWebView alloc]initWithFrame:CGRectMake(0, 64, self.view.frame.size.width, self.view.frame.size.height)];  
openFileWebView.delegate = self;  
[openFileWebView loadRequest:[NSURLRequest requestWithURL:[NSURL URLWithString:self.fileURLString]]];  

代理方法:

- (BOOL)webView:(UIWebView *)webView shouldStartLoadWithRequest:(NSURLRequest *)request navigationType:(UIWebViewNavigationType)navigationType  
{  
      
      
    return YES;  
}  
#pragma mark - Web代理  
- (void)webViewDidFinishLoad:(UIWebView *)webView  
{  
    NSURL *targetURL = [NSURL URLWithString:self.fileURLString];  
      
    NSString *docPath = [self documentsDirectoryPath];  
    NSString *pathToDownloadTo = [NSString stringWithFormat:@"%@/%@", docPath, [targetURL lastPathComponent]];  
    NSFileManager *fileManager = [NSFileManager defaultManager];  
    BOOL hasDownLoad= [fileManager fileExistsAtPath:pathToDownloadTo];  
    if (hasDownLoad) {  
        self.fileURL = [NSURL fileURLWithPath:pathToDownloadTo];  
        QLPreviewController *qlVC = [[QLPreviewController alloc]init];  
        qlVC.delegate = self;  
        qlVC.dataSource = self;  
        [self.navigationController pushViewController:qlVC animated:YES];  
        //  
    }  
    else {  
        NSURL *targetURL = [NSURL URLWithString:self.fileURLString];  
          
        NSData *fileData = [[NSData alloc] initWithContentsOfURL:targetURL];  
        // Get the path to the App's Documents directory  
        NSArray *paths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES);  
        NSString *documentsDirectory = [paths objectAtIndex:0]; // Get documents folder  
        [fileData writeToFile:[NSString stringWithFormat:@"%@/%@", documentsDirectory, [targetURL lastPathComponent]] atomically:YES];  
        NSURLRequest *request = [NSURLRequest requestWithURL:targetURL];  
        [openFileWebView loadRequest:request];  
    }  
      
    NSLog(@"webViewDidFinishLoad");  
}  
  
- (void)webView:(UIWebView *)webView didFailLoadWithError:(NSError *)error  
{  
    NSLog(@"didFailLoadWithError");       
}  

- (NSString *)documentsDirectoryPath {  
    NSArray *paths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES);  
    NSString *documentsDirectoryPath = [paths objectAtIndex:0];  
    return documentsDirectoryPath;  
}  

我們根絕一個(gè)無(wú)誤的地址漆诽,就能打開(kāi)一個(gè)文件了

在線.doc

二、QuickLook####

導(dǎo)入#import <QuickLook/QuickLook.h>
實(shí)現(xiàn)QLPreviewControllerDataSource,QLPreviewControllerDelegate
其具體實(shí)現(xiàn)方法如下:


QLPreviewController *qlController = [[QLPreviewController alloc]init];
qlController.delegate = self;
qlController.dataSource = self;
[qlController setCurrentPreviewItemIndex:0];
[self presentViewController:qlController animated:YES completion:nil];


- (id <QLPreviewItem>)previewController:(QLPreviewController *)controller previewItemAtIndex:(NSInteger)index {  
    return self.fileURL;  
}  
  
- (void)previewControllerWillDismiss:(QLPreviewController *)controller {  
    NSLog(@"previewControllerWillDismiss");  
}  
  
- (void)previewControllerDidDismiss:(QLPreviewController *)controller {  
    NSLog(@"previewControllerDidDismiss");  
}  
  
- (BOOL)previewController:(QLPreviewController *)controller shouldOpenURL:(NSURL *)url forPreviewItem:(id <QLPreviewItem>)item{  
    return YES;  
}  
  
- (CGRect)previewController:(QLPreviewController *)controller frameForPreviewItem:(id <QLPreviewItem>)item inSourceView:(UIView * __nullable * __nonnull)view{  
    return CGRectZero;  
}  
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末锣枝,一起剝皮案震驚了整個(gè)濱河市厢拭,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌撇叁,老刑警劉巖供鸠,帶你破解...
    沈念sama閱讀 217,084評(píng)論 6 503
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場(chǎng)離奇詭異陨闹,居然都是意外死亡楞捂,警方通過(guò)查閱死者的電腦和手機(jī),發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 92,623評(píng)論 3 392
  • 文/潘曉璐 我一進(jìn)店門(mén)正林,熙熙樓的掌柜王于貴愁眉苦臉地迎上來(lái)泡一,“玉大人,你說(shuō)我怎么就攤上這事觅廓”侵遥” “怎么了?”我有些...
    開(kāi)封第一講書(shū)人閱讀 163,450評(píng)論 0 353
  • 文/不壞的土叔 我叫張陵杈绸,是天一觀的道長(zhǎng)帖蔓。 經(jīng)常有香客問(wèn)我,道長(zhǎng)瞳脓,這世上最難降的妖魔是什么塑娇? 我笑而不...
    開(kāi)封第一講書(shū)人閱讀 58,322評(píng)論 1 293
  • 正文 為了忘掉前任,我火速辦了婚禮劫侧,結(jié)果婚禮上埋酬,老公的妹妹穿的比我還像新娘。我一直安慰自己烧栋,他們只是感情好写妥,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,370評(píng)論 6 390
  • 文/花漫 我一把揭開(kāi)白布。 她就那樣靜靜地躺著审姓,像睡著了一般珍特。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上魔吐,一...
    開(kāi)封第一講書(shū)人閱讀 51,274評(píng)論 1 300
  • 那天扎筒,我揣著相機(jī)與錄音莱找,去河邊找鬼。 笑死嗜桌,一個(gè)胖子當(dāng)著我的面吹牛奥溺,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播症脂,決...
    沈念sama閱讀 40,126評(píng)論 3 418
  • 文/蒼蘭香墨 我猛地睜開(kāi)眼谚赎,長(zhǎng)吁一口氣:“原來(lái)是場(chǎng)噩夢(mèng)啊……” “哼!你這毒婦竟也來(lái)了诱篷?” 一聲冷哼從身側(cè)響起壶唤,我...
    開(kāi)封第一講書(shū)人閱讀 38,980評(píng)論 0 275
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤,失蹤者是張志新(化名)和其女友劉穎棕所,沒(méi)想到半個(gè)月后闸盔,有當(dāng)?shù)厝嗽跇?shù)林里發(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 45,414評(píng)論 1 313
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡琳省,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,599評(píng)論 3 334
  • 正文 我和宋清朗相戀三年迎吵,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片针贬。...
    茶點(diǎn)故事閱讀 39,773評(píng)論 1 348
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡击费,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出桦他,到底是詐尸還是另有隱情蔫巩,我是刑警寧澤,帶...
    沈念sama閱讀 35,470評(píng)論 5 344
  • 正文 年R本政府宣布快压,位于F島的核電站圆仔,受9級(jí)特大地震影響,放射性物質(zhì)發(fā)生泄漏蔫劣。R本人自食惡果不足惜坪郭,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,080評(píng)論 3 327
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望脉幢。 院中可真熱鬧歪沃,春花似錦、人聲如沸嫌松。這莊子的主人今日做“春日...
    開(kāi)封第一講書(shū)人閱讀 31,713評(píng)論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)豆瘫。三九已至珊蟀,卻和暖如春菊值,著一層夾襖步出監(jiān)牢的瞬間外驱,已是汗流浹背育灸。 一陣腳步聲響...
    開(kāi)封第一講書(shū)人閱讀 32,852評(píng)論 1 269
  • 我被黑心中介騙來(lái)泰國(guó)打工, 沒(méi)想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留昵宇,地道東北人磅崭。 一個(gè)月前我還...
    沈念sama閱讀 47,865評(píng)論 2 370
  • 正文 我出身青樓,卻偏偏與公主長(zhǎng)得像瓦哎,于是被迫代替她去往敵國(guó)和親砸喻。 傳聞我的和親對(duì)象是個(gè)殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 44,689評(píng)論 2 354

推薦閱讀更多精彩內(nèi)容