iOS關於應用內分享


 iOS7.0增加了AirDrop功能,可知在未來,手機信息資源的直接分享會越來越重要。而我們在iPhone系統短信點擊照片會看到右上角的分享按鈕,點擊可以彈出一系列的應用菜單,允許用戶把這張圖片分享到其他應用。下面談談怎樣讓自己的應用出現在這個全局菜單。

當然,這要應用內部手動設置支持。如圖:

7.0的分享菜單)

  

(在IOS6.0分別在messagesafari支持的全局分享調用)

 

設定應用支持的全局分享設置,在plist添加下面代碼:

  

  <key>CFBundleDocumentTypes</key>

    <array>

        <dict>

            <key>CFBundleTypeName</key>

            <string>ShareImage</string>

            <key>CFBundleTypeRole</key>

            <string>Viewer</string>

            <key>LSHandlerRank</key>

            <string>Owner</string>

            <key>LSItemContentTypes</key>

            <array>

                <string>public.image</string>

            </array>

        </dict>

</array>

簡單說明一下,CFBundleDocumentTypes是必須添加的一個key,LSItemContentTypes指定所支持的分享類型,如上面的public.image就是指定圖片的分享。CFBundleTypeRole和LSHandlerRank就是指定應用對這個資源的權限,例如viewer或者owner。

具體可以看官方文檔:http://developer.apple.com/library/ios/documentation/FileManagement/Conceptual/DocumentInteraction_TopicsForIOS/DocumentInteraction_TopicsForIOS.pdf

 

當用戶點擊了所對應的分享應用圖標,就會調起應用,並且回調這個函數:

- (BOOL)application:(UIApplication *)application

            openURL:(NSURL *)url

  sourceApplication:(NSString *)sourceApplication

         annotation:(id)annotation {}

從url就能取出對應的資源,例如圖片或者視頻。至於下面的流程就得客戶端自己定制。

 

而在6.0以后,系統已經允許我們調用這個分享菜單界面,以把應用內的資源分享到其他應用。主要用的幾個類如下:

UIActivity:(用來定制上面分享的item)

- (BOOL)canPerformWithActivityItems:(NSArray *)activityItems{}

- (void)prepareWithActivityItems:(NSArray *)activityItems{}

- (void)performActivity{}

 

UIActivityViewController:(用來顯示分享菜單的controller)

-   (id)initWithActivityItems:(NSArray *)activityItems applicationActivities:(NSArray *)applicationActivities;

 

這是測試調用這個菜單的一個示例,系統提供的控件,效果還是不錯的。iOS7.0就更好看點。具體可以詳細看看UIActivityViewController的介紹。

 

這是系統默認支持的分享菜單。Weibo很神奇地入選了。

 

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM