天天看點

iOS8新特性擴充(Extension)應用之一——Today擴充

iOS8新特性擴充(Extension)應用之一——Today擴充

一、了解擴充

1、簡介

        基于iOS系統的安全性考慮,其應用的資料存儲是通過沙盒模式進行的,要實作應用之間的資料共享十分困難,功能共享就更加棘手。在iOS8系統中,apple為我們提供了一個革命性的功能:擴充。我們可以通過擴充來使app間資料甚至功能進行共享。

2、幾種擴充模式

(1)今日視圖擴充:today

        這個擴充也被叫做 widget。該擴充可以将今日發生的簡短消息放到消息中心的「今日」視圖裡。這個功能類似于安卓系統中的小控件,隻是安卓的可以直接放在桌面上,更加自由。示例如下:

iOS8新特性擴充(Extension)應用之一——Today擴充
(2)分享功能擴充

        該擴充允許應用向線上服務上傳照片、連結或者其他檔案。在以前版本中,我們若要實作分享功能,必須進行複雜的操作。

(3)個性操作

        通過這個功能,可以實作兩個APP中共享一些内容,例如編輯文字中的圖檔,翻譯網頁中的文字。

(4)照片操作

        這個類型的擴充可以允許我們在ipone相機中拍攝的照片使用其他圖檔編輯軟體進行編輯。

(5)檔案分享

        該擴充可以讓軟體将檔案儲存在各種雲存儲服務商。

(6)自定義鍵盤

        允許使用者使用第三方的鍵盤輸入法。

二、ToDay擴充的建立

        擴充是一個獨立的構成,和其有關的兩個概念是宿主APP和主機APP,宿主APP是擴充存放的地方,與擴充可以實作資源共享,主機APP是擴充運作的程式,例如ToDay擴充有抽屜中的Today應用進行運作。要建立一個ToDay擴充,首先我們需要建立一個宿主APP:

建立一個工程:

iOS8新特性擴充(Extension)應用之一——Today擴充

選擇xcode工具欄中的File->new->target

在Application Extension中有上面提到的6中擴充,我們選擇Today。

這是我們的項目中會多了一個擴充的檔案夾:

iOS8新特性擴充(Extension)應用之一——Today擴充

這個檔案夾中有一個ViewController,我們可以在裡面進行布局,還有一個plist檔案,可是配置擴充的一些屬性。

我們建立一個按鈕:

UIButton * btn = [[UIButton alloc]initWithFrame:CGRectMake(0, 0, 100, 30)];
    [btn setTitle:@"231" forState:UIControlStateNormal];
    [self.view addSubview:btn];      

之後我們運作這個擴充:

iOS8新特性擴充(Extension)應用之一——Today擴充

xcode會讓我們選擇運作擴充的主機程式,因為這是一個today類型的擴充,我們選擇Today:

iOS8新特性擴充(Extension)應用之一——Today擴充

運作後,在系統的通知抽屜中,就會出現我們的這個擴充:

iOS8新特性擴充(Extension)應用之一——Today擴充

同樣,我們可以建立tableView,imageView以及其他複雜的視圖效果,我們也可以編寫很多邏輯功能,跳轉APP等。

繼續閱讀