【iOS_GitHub】文檔/文件查看器(支持本地或者其他app分享過來的word落萎、excel亥啦、pdf炭剪、rtf等格式文件)

DocViewer(文檔/文件查看器)

Function Description

  • 文檔查看器(Word && Excel && PDF && Rft || Network && Local || self && other App)
  • 文件共享 && 查看 (Network && Local)

how to use

1. 相關參數配置

a. JhtLoadDocViewParamModel:文本加載 View 配置Model
JhtLoadDocView內部相關屬性的修改可通過修改此model實現
b. JhtDocFileOperations:文件操作類
文件保存 && 清理等方法
c. JhtShowDumpingViewParamModel:下滑提示框配置參數model
用于設置提示框中的 文字的大小,顏色禁悠,位置念祭,背景圖,是否包含警示小圖標等參數
d. JhtFileModel:下載文檔的Model
用于設置文件ID碍侦,文件名粱坤,絕對路徑(本地文件),文件大小等參數

2. DocListViewController:文檔列表

tableView的數據源是一個裝有model的數組瓷产,model根據屬性fileAbsolutePath(本地絕對路徑)站玄,判斷是否需要下載

3. LoadDocViewController:文檔詳情VC,內部使用JhtLoadDocView

4. JhtLoadDocView:文本加載 View

a. 如果不需要下載濒旦,通過webView直接顯示
b. 需要下載株旷,則通過JhtDownloadRequest函數中的類方法進行下載,暫停等操作(注意:JhtFileModel屬性:fileSize尔邓,應寫成這種式“KB,MB,GB,Bytes”晾剖,為了計算手機剩余內存,關系是否能下載成功


c. 資源共享

《JhtDocViewer》文件用”其他應用“打開



“其他應用”文件用《JhtDocViewer》打開

??

d. 無網絡彈框


  • 具體使用詳見demo

needed to pay attention

1. 如果我們在iOS9下直接進行HTTP請求是會收到如下錯誤提示

App Transport Security has blocked a cleartext HTTP (http://) resource load since it is insecure. Temporary exceptions can be configured via your app's Info.plist file.

系統(tǒng)會告訴我們不能直接使用HTTP進行請求梯嗽,需要在Info.plist新增一段用于控制ATS的配置

<key>NSAppTransportSecurity</key>
<dict>
    <key>NSAllowsArbitraryLoads</key>
    <true/>
</dict>

即:

2. 如果想共享自己app的文檔查看功能齿尽,需在info.plist 中添加如下信息

<key>CFBundleDocumentTypes</key>
    <array>
        <dict>
            <key>CFBundleTypeIconFiles</key>
            <array>
                <string>MySmallIcon.png</string>
                <string>MyLargeIcon.png</string>
            </array>
            <key>CFBundleTypeName</key>
            <string>My File Format</string>
            <key>LSHandlerRank</key>
            <string>Owner</string>
            <key>LSItemContentTypes</key>
            <array>
                <string>com.microsoft.powerpoint.ppt</string>
                <string>public.item</string>
                <string>com.microsoft.word.doc</string>
                <string>com.adobe.pdf</string>
                <string>com.microsoft.excel.xls</string>
                <string>public.image</string>
                <string>public.content</string>
                <string>public.composite-content</string>
                <string>public.archive</string>
                <string>public.audio</string>
                <string>public.movie</string>
                <string>public.text</string>
                <string>public.data</string>
            </array>
        </dict>
    </array>

屬性說明:

  • CFBundleTypeName:文檔的類型名稱
  • LSHandlerRank:這里指是否擁有子文檔

3. info.plist 中,對應Localization native development region鍵值 加入Chinese


4. 在第三方調用我們的APP后灯节,會調用如下方法

- (BOOL)application:(UIApplication *)application openURL:(nonnull NSURL *)url options:(nonnull NSDictionary<NSString *,id> *)options {
    if (options) {
        NSString *str = [NSString stringWithFormat:@"\n發(fā)送請求的應用程序的 Bundle ID:%@\n\n文件的NSURL:%@", options[UIApplicationOpenURLOptionsSourceApplicationKey], url];
        NSLog(@"%@", str);
        
        if (self.window && url) {
            // 根據“其他應用” 用“本應用”打開循头,通過url,進入列表頁
            [self pushDocListViewControllerWithUrl:url];
        }
    }
    return YES;
}


#pragma mark ApplicationDelegate Method
/** 根據“其他應用” 用“本應用”打開炎疆,通過url卡骂,進入列表頁 */
- (void)pushDocListViewControllerWithUrl:(NSURL *)url {
    // 根據“其他應用” 用“本應用”打開,通過要打開的url形入,獲得本地地址
    NSString *appFilePath = [[JhtDocFileOperations sharedInstance] findLocalPathFromAppLicationOpenUrl:url];
    // 跳轉頁面
    DocListViewController *doc = [[DocListViewController alloc] init];
    doc.appFilePath = appFilePath;
    [_nav pushViewController:doc animated:YES];
}

5. 庫文件

系統(tǒng)庫:WebKit.framework <br>
三方庫:AFNetworking3.x <br>


GitHub主頁

CSDN Blog

Email:jinjob@icloud.com

最后編輯于
?著作權歸作者所有,轉載或內容合作請聯系作者
  • 序言:七十年代末全跨,一起剝皮案震驚了整個濱河市,隨后出現的幾起案子亿遂,更是在濱河造成了極大的恐慌螟蒸,老刑警劉巖,帶你破解...
    沈念sama閱讀 222,681評論 6 517
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件崩掘,死亡現場離奇詭異七嫌,居然都是意外死亡,警方通過查閱死者的電腦和手機苞慢,發(fā)現死者居然都...
    沈念sama閱讀 95,205評論 3 399
  • 文/潘曉璐 我一進店門诵原,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人,你說我怎么就攤上這事绍赛÷溃” “怎么了?”我有些...
    開封第一講書人閱讀 169,421評論 0 362
  • 文/不壞的土叔 我叫張陵吗蚌,是天一觀的道長腿倚。 經常有香客問我,道長蚯妇,這世上最難降的妖魔是什么敷燎? 我笑而不...
    開封第一講書人閱讀 60,114評論 1 300
  • 正文 為了忘掉前任,我火速辦了婚禮箩言,結果婚禮上硬贯,老公的妹妹穿的比我還像新娘。我一直安慰自己陨收,他們只是感情好饭豹,可當我...
    茶點故事閱讀 69,116評論 6 398
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著务漩,像睡著了一般拄衰。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上饵骨,一...
    開封第一講書人閱讀 52,713評論 1 312
  • 那天翘悉,我揣著相機與錄音,去河邊找鬼宏悦。 笑死,一個胖子當著我的面吹牛包吝,可吹牛的內容都是我干的饼煞。 我是一名探鬼主播,決...
    沈念sama閱讀 41,170評論 3 422
  • 文/蒼蘭香墨 我猛地睜開眼诗越,長吁一口氣:“原來是場噩夢啊……” “哼砖瞧!你這毒婦竟也來了?” 一聲冷哼從身側響起嚷狞,我...
    開封第一講書人閱讀 40,116評論 0 277
  • 序言:老撾萬榮一對情侶失蹤块促,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后床未,有當地人在樹林里發(fā)現了一具尸體竭翠,經...
    沈念sama閱讀 46,651評論 1 320
  • 正文 獨居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內容為張勛視角 年9月15日...
    茶點故事閱讀 38,714評論 3 342
  • 正文 我和宋清朗相戀三年薇搁,在試婚紗的時候發(fā)現自己被綠了斋扰。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點故事閱讀 40,865評論 1 353
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖传货,靈堂內的尸體忽然破棺而出屎鳍,到底是詐尸還是另有隱情,我是刑警寧澤问裕,帶...
    沈念sama閱讀 36,527評論 5 351
  • 正文 年R本政府宣布逮壁,位于F島的核電站,受9級特大地震影響粮宛,放射性物質發(fā)生泄漏窥淆。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點故事閱讀 42,211評論 3 336
  • 文/蒙蒙 一窟勃、第九天 我趴在偏房一處隱蔽的房頂上張望祖乳。 院中可真熱鬧,春花似錦秉氧、人聲如沸眷昆。這莊子的主人今日做“春日...
    開封第一講書人閱讀 32,699評論 0 25
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽亚斋。三九已至,卻和暖如春攘滩,著一層夾襖步出監(jiān)牢的瞬間帅刊,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 33,814評論 1 274
  • 我被黑心中介騙來泰國打工漂问, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留赖瞒,地道東北人。 一個月前我還...
    沈念sama閱讀 49,299評論 3 379
  • 正文 我出身青樓蚤假,卻偏偏與公主長得像栏饮,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子磷仰,可洞房花燭夜當晚...
    茶點故事閱讀 45,870評論 2 361

推薦閱讀更多精彩內容