1. 程式人生 > >iOS開發:通過UIWebView載入讀取本地檔案(word文件)

iOS開發:通過UIWebView載入讀取本地檔案(word文件)

      做過iOS開發的程式猿,對UIWebView都不陌生,因為只要涉及到開發工作,就一定會涉及到這方面的運用。UIWebView是蘋果自帶的框架,也算是蘋果程式內部的瀏覽器,可以瀏覽web網頁,也可以開啟HTML/HTM、PDF、docx、txt等格式的文字檔案,其實蘋果自帶的瀏覽器Safari就是用UIWebView來實現的,具體原理簡單的說就是伺服器將MIME的識別符號等放入傳送的資料中,然後告訴瀏覽器使用哪種外掛來讀取相關對應的檔案。這裡我只介紹兩種UIWebView載入讀取本地檔案的方法,具體操作步驟請往下閱讀。

一、UIWebView通過loadRequest方法載入各種本地檔案

       這裡我通過一個實際例子來展示具體操作步驟:

      (一)UIWebView通過loadRequest方法載入本地檔案:

       1、首先把需要展示的文字放到word文件裡面,然後儲存文件內容之後,把word文件直接拖入到專案工程裡面;

       2、然後再需要展示word內容的控制器裡面,初始化一個webview,然後再用loadRequest方法載入word文件即可。

NSString *path = [[NSBundle mainBundle] pathForResource:@"使用說明" ofType:@"docx"];
NSURL *url = [NSURL fileURLWithPath:path];
UIWebView *webView = [[UIWebView alloc] initWithFrame:CGRectMake(0, 0, SCREEN_WIDTH, SCREEN_HEIGHT)];
[webView loadRequest:[NSURLRequest requestWithURL:url]];
[self.view addSubview:webView];

      (二)UIWebView通過loadRequest方法載入本地檔案:

         1、首先把word內容放到測試伺服器上面,然後把連結複製出來;

         2、然後再需要展示word內容的控制器裡面,初始化一個webview,然後再用loadRequest方法載入word文件即可。

   NSURL *url = [NSURL URLWithString:@"http://test.tea.com.cn:88/static/upload/使用說明.doc"];    [webView loadRequest:[NSURLRequest requestWithURL:url]];
    webView.delegate = self;
    NSData *data = [[NSData alloc] initWithContentsOfURL:url];

    UIWebView *webView = [[UIWebView alloc] initWithFrame:CGRectMake(0, 0, SCREEN_WIDTH, SCREEN_HEIGHT)];

    [self.view addSubview:webView];

二、UIWebView通過loadData方法載入各種本地檔案

      1、載入docx檔案:

     NSString *path = [[NSBundle mainBundle] pathForResource:@"使用說明.docx" ofType:nil];  
     NSURL *url = [NSURL fileURLWithPath:path];  
     NSData *data = [NSData dataWithContentsOfFile:path];  
     [self.webView loadData:data MIMEType:@"application/vnd.openxmlformats-officedocument.wordprocessingml.document" textEncodingName:@"UTF-8" baseURL:nil];
     

     2、載入pdf檔案:

     NSString *path = [[NSBundle mainBundle] pathForResource:@"使用說明.pdf" ofType:nil];  
     NSURL *url = [NSURL fileURLWithPath:path];  
     NSData *data = [NSData dataWithContentsOfFile:path];  
     [self.webView loadData:data MIMEType:@"application/pdf" textEncodingName:@"UTF-8" baseURL:nil];  

     3、載入txt檔案:

     NSString *path = [[NSBundle mainBundle] pathForResource:@"使用說明.txt" ofType:nil];  
     NSURL *url = [NSURL fileURLWithPath:path];  
     NSData *data = [NSData dataWithContentsOfFile:path];  
    [self.webView loadData:data MIMEType:@"text/plain" textEncodingName:@"UTF-8" baseURL:nil];  

     4、載入html檔案:

    NSString *path = [[NSBundle mainBundle] pathForResource:@"使用說明.html" ofType:nil];  
    NSURL *url = [NSURL fileURLWithPath:path];  
    NSData *data = [NSData dataWithContentsOfFile:path];  
    [self.webView loadData:data MIMEType:@"text/html" textEncodingName:@"UTF-8" baseURL:nil];  

     5、獲取指定URL的MIMEType型別

 - (NSString *)mimeType:(NSURL *)url {  
   //1.NSURLRequest  
       NSURLRequest *request = [NSURLRequest requestWithURL:url];  
   //2.NSURLConnection        
   //3.在NSURLResponse裡,伺服器告訴瀏覽器用啥方式開啟檔案,使用同步方法後去MIMEType  
       NSURLResponse *response = nil;  
       [NSURLConnection sendSynchronousRequest:request returningResponse:&response error:nil];  
       return response.MIMEType;  
}  

三、總結

UIWebView載入內容的三種方式:
1 、載入本地資料檔案,指定檔案的MIMEType,編碼格式使用@“UTF-8”  ;
2、載入html字串(可以載入全部或者部分html檔案);
3、載入NSURLRequest檔案(前兩步與NSURLConnect相同)。

                                                                                  以上就是本篇全部內容,歡迎關注三掌櫃微信公眾號,歡迎關注!

                                                                       

相關推薦

iOS開發通過UIWebView載入讀取本地檔案word

      做過iOS開發的程式猿,對UIWebView都不陌生,因為只要涉及到開發工作,就一定會涉及到這方面的運用。UIWebView是蘋果自帶的框架,也算是蘋果程式內部的瀏覽器,可以瀏覽web網頁,也可以開啟HTML/HTM、PDF、docx、txt等格式的文字檔案,其

iOS開發通過json格式來批量處理國際化內容

        iOS開發中,做App的國際化處理的時候,會不會遇到這種情況,通過一個鍵值對來依次對需要做國際化處理的地方進行處理,有沒有覺得這樣做很麻煩,需要一個一個依次設定,如果是大量的內容需要做國

利用html5 file api讀取本地檔案如圖片、PDF等

在html4的年代,我們如果要在網頁上呈現一張使用者本地的圖片,需要使用者先把圖片上傳到伺服器,再根據伺服器提供的圖片地址把圖片下載下來,才能把圖片在網頁上呈現出來。這一來二往,起碼已經費了兩倍於這張圖片的流量了,更別說伺服器為了儲存這張圖片所花費的資源以及使用者上傳錯了圖片

前嗅ForeSpider教程通過連結列表採集正文資料不翻頁

第一步:新建任務 ①點選左上角“加號”新建任務,如圖1: 【圖1】 ②在彈窗裡填寫採集地址,任務名稱如圖2: 【圖2】 ③點選下一步,選擇進行資料抽取還是連結抽取,本次採集當前列表頁新聞的正文資料,正文資料是通過點選列表連結進入的,所以本次需要抽取列表連結,所以點選抽取連結,如圖3:

iOS 開發、測試、生產的描述檔案配置檔案

對於iOS開發,證書以及描述檔案是必不可少的元素。 iOS證書是用來證明iOS App內容的合法性和完整性的數字證書。對於想安裝到真機或釋出到AppStore的應用程式(App),只有經過簽名驗證才能

CentOS 安裝rz和sz命令 lrzsz通過Xshell向Linux服務器上傳

到你 dem zmodem .cn ftp linux install 自動 all lrzsz在liunx裏面可代替ftp上傳可下載。 lrzsz是一個unix通信套件提供的X,Y和ZModem文件傳輸協議。 winddows需要向centos服務器上傳文件,可直接

Java讀取Unicode檔案UTF-8等時碰到的BOM首字元問題,及處理方法

2015-18-01修改:增加 apache commons io 處理方法。 在Windows下用文字編輯器建立的文字檔案,如果選擇以UTF-8等Unicode格式儲存,會在檔案頭(第一個字元)加入一個BOM標識。 這個標識在Java讀取檔案的時候,不會被去掉,而且S

Qt學習筆記-仿大佬讀取setting檔案簡單工廠模式

檔案如下: 程式執行截圖如下: 程式碼如下: widget.h #ifndef WIDGET_H #define WIDGET_H #include <QWidget> #include <QHostAddress> class

Java中讀取配置檔案properties、xml

1. 利用java.util提供的工具類Properties       - 首先我這邊有個file.properties檔案       - 然後去讀取這個檔案

java讀取配置檔案 properties 與 xml

public class Properties{ public static void main(String[] args){ Properties pt = new Properties();//建立一個Properties物件 try { String url = pt.get

iOS開發圖片載入@2x與@3x

myImage = [UIImage imageNamed:@"icon.png"]; 這種方法在一些圖片很少,或者圖片很小的程式裡是ok的。 但是,在大量載入圖片的程式裡,請千萬不要這樣做。 為什麼呢 ??????? 這種方法在application bundle的頂層資料夾尋找由供應的名字的圖象 。

基於Swift的iOS應用程式開發通過UITextFieldDelegate快速理解Delegate事件代理

// // 關於文字輸入框的事件代理,摘錄蘋果開發者中心的官方解釋如下: //*******************************************************************************************// //* To understand wh

javaScript 通過flie API讀取本地

fileinput 代碼 == nbsp function png ada scrip 監聽 File API是HTML5新增內容,依靠file和FileReader,這兩個對象完成,代碼如下: var fileInput = document.getElemen

iOS開發UILabel字號根據屏幕縮放

control after call git 步驟 obj gin begin follow 場景: 假設我們有這樣一個需求,iPhone 6(屏幕寬度為375pt)上的設計圖上的字號為17pt,iPhone 6 Plus上的字號根據屏幕寬度縮放,即字號為(17pt x 4

iOS 開發Method Swizzling

是個 不足 沒有 int from ios 開發 解決方案 它的 nslog iOS 開發之Method Swizzling 前言 如果你還不知道什麽是Method Swizzling,你可以看看NSHipster 的文章 ,我簡單介紹一下,method swizzling

iOS 開發 解決Xcode7.3 不能自動索引標頭檔案,檔名等問題

iOS 開發: 解決Xcode7.3 不能自動索引標頭檔案,檔名,程式碼補全等問題 解決方案: 開啟Xcode –> Target –> BuildSettings –> Apple LLVM 7.1 -Language-Objective C 下面的 Weak

iOS 開發CocoaPods 安裝及問題 ERROR: Error installing cocoapods: activesupport requires Ruby version>=2.2.2

iOS 開發:CocoaPods 安裝以及 ERROR:  Error installing cocoapods: activesupport requires Ruby version >= 2.2.2. 今天用新的Mac筆記本安裝coco

iOS開發UITableview的多選功能實現

一、 先看效果: 最近專案中要運用即時通訊實現群組功能, 在建立群時需要選擇新增多個成員: 二、思路: 第一次點選cell選中, 再次點選取消選中; 三、方法: 只需要設定兩個屬性, 操作兩個方法即可; 1、UITableview 自帶多選功能: //允許多選 _

iOS開發環信整合步驟以及常見錯誤

環信官方文件 一、整合: 下載SDK手動整合或者CocoaPod終端整合: 下載SDK 匯入檔案以及依賴庫: 關閉Bitcode: Build Settings → Linking → Enable Bitcode 中設定 NO。 二、常

iOS開發字典(NSDictionary)和陣列( NSArray)轉換成字串

概述: 在專案開發中,總是與伺服器進行著介面的互動,傳參是不可缺少的一部分。後臺返回的j son資料我們可以很好的解析使用,但是我們如何向後臺傳送j son資料的引數呢?要知道,一般伺服器是不允許傳物件的。以下是在專案中遇到的實際問題,在此總結一下,供大家交流。 一. 字典轉字串: