iOS File文件共享

在Files顯示自己的APP

info.plist 添加Supports opening documents in place(LSSupportsOpeningDocumentsInPlace)
就可以在On My iPhone看到自己的APP,如果沒(méi)有的話,就打開相冊(cè)隨便分享一個(gè)圖片到Save to Files就會(huì)出現(xiàn)

Browse

On My iPhone

Application supports iTunes file sharing(UIFileSharingEnabled)是指把Documents共享給iTunes,連上數(shù)據(jù)線可以在文件共享看到對(duì)應(yīng)App的Document文件夾的數(shù)據(jù),因此對(duì)一些私密的文件來(lái)說(shuō)是不安全的。所以想開共享,又不想暴露太多文件數(shù)據(jù)的話,需要調(diào)整項(xiàng)目文件的讀取路徑。
如果不是那么重要的文件,我們可以將它們存放在 NSCachesDirectory 或者是 NSTemporaryDirectory 文件夾下面;如果它是重要的文件,大多數(shù)情況下,我們是需要將它們備份在 iCloud 上的,這樣的文件我們建議將它存放在 NSApplicationSupportDirectory目錄下。

UIFileSharingEnabled


第三方App調(diào)用自己的App打開

調(diào)用自己的App

針對(duì)系統(tǒng)相冊(cè)處理方式與其他APP并不一樣,下面方式是針對(duì)一般第三方App。系統(tǒng)相冊(cè)需要添加Share Extension,可以看這篇文章

在區(qū)域1顯示自己的APP
info.plist中添加

    <key>CFBundleDocumentTypes</key>
    <array>
        <dict>
            <key>CFBundleTypeName</key>
            <string>Type Name</string>
            <key>CFBundleTypeRole</key>
            <string>Viewer</string>
            <key>LSHandlerRank</key>
            <string>Default</string>
            <key>LSItemContentTypes</key>
            <array>
                <string>com.example.plain-text</string>
            </array>
        </dict>
    </array>

CFBundleDocumentTypes只要有數(shù)據(jù),會(huì)在target setting info中相對(duì)應(yīng)顯示。

Document Types

CFBundleTypeName:文檔的類型名稱(自定義輸入)
Handler rank:字符串類型,包含Owner,Default,Alternate,None四個(gè)可選值,指定對(duì)于某種類型的優(yōu)先權(quán)級(jí)別,而Launcher Service會(huì)根據(jù)這個(gè)優(yōu)先級(jí)別來(lái)排列顯示的App的順序。優(yōu)先級(jí)別從高到低依次是Owner,AlternateDefault。None表示不接受這種類型。

LSItemContentTypes根據(jù)UTIs lists定義,并非亂填。

基本上用

<string>com.microsoft.powerpoint.ppt</string>
<string>com.microsoft.word.doc</string>
<string>com.microsoft.excel.xls</string>
<string>com.adobe.pdf</string>
<string>public.item</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>

就能涵蓋大部分常用類型,其它的字段都可以隨意添加,會(huì)顯示在Additional document type properties

第三方應(yīng)用打開文件會(huì)調(diào)用下面的代理方法

- (BOOL)application:(UIApplication *)application openURL:(NSURL *)url sourceApplication:(nullable NSString *)sourceApplication annotation:(id)annotation
{
    if (self.window) {
        if (url) {
            NSString *fileNameStr = [url lastPathComponent];
            NSString *Doc = [[NSHomeDirectory() stringByAppendingPathComponent:@"Documents/localFile"] stringByAppendingPathComponent:fileNameStr];
            NSData *data = [NSData dataWithContentsOfURL:url];
            [data writeToFile:Doc atomically:YES];
            NSLog(@"文件已存到本地文件夾內(nèi)");
        }
    }
    return YES;
}

這樣就可以根據(jù)自己的業(yè)務(wù)做保存或打開。


在區(qū)域2顯示自己的APP
target中添加新targetAction Extension

Action Extension

之后看這篇文章(http://www.itdecent.cn/p/37f23426bb04)


info.plist其它key解讀

UISupportsDocumentBrowser
如果應(yīng)用使用UIDocumentInteractionController來(lái)打開文件,info.plist就要將 UISupportsDocumentBrowser設(shè)置為YES

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

  • 關(guān)于IOS文件目錄的一點(diǎn)記錄 IOS的文件系統(tǒng)面向的是設(shè)備上的每個(gè)運(yùn)行的應(yīng)用程序。為了保證IOS系統(tǒng)的可用性和簡(jiǎn)單...
    Maxfire閱讀 6,878評(píng)論 0 3
  • IOS的文件系統(tǒng)面向的是設(shè)備上的每個(gè)運(yùn)行的應(yīng)用程序。為了保證IOS系統(tǒng)的可用性和簡(jiǎn)單性,IOS設(shè)備的終端用戶是無(wú)法...
    藍(lán)色的雪啦閱讀 15,154評(píng)論 0 3
  • 1.info.plist注冊(cè)文件類型 在info.plist文件中,添加一個(gè)新的屬性CFBundleDocumen...
    阿青啊啊啊閱讀 7,846評(píng)論 0 6
  • 之前做項(xiàng)目鈴聲制作的時(shí)候,需求是創(chuàng)建app文件夾里面放去音頻文件 可以復(fù)制到庫(kù)樂(lè)隊(duì)里面 當(dāng)時(shí)研究這里的時(shí)候卡住了但...
    泥孩兒0107閱讀 13,075評(píng)論 10 11
  • iOS 審核被拒絕問(wèn)題匯總 蘋果審核概述 App被拒絕常見原因概述 被拒解決方案概述 蘋果開發(fā)者 條款詳細(xì)解讀 1...
    咕嚕咕嚕ww閱讀 14,332評(píng)論 1 5

友情鏈接更多精彩內(nèi)容