管iPhone不容許同時運行兩個應用程序,咱們能夠從本身的應用程序中啓動另外一個應用程序,而且能夠在應用程序之間共享數據。咱們能夠使用UIApplication類的openURL:方法從一個應用程序來啓動另外一個應用程序。例如,要在Safari應用程序中打開Google主頁,咱們能夠編寫以下代碼:
NSURL *url = [NSURL URLWithString:@"http://google.com"]; html
[[UIApplication sharedApplication] openURL:url];app
這裏的http://部分叫作URL方案(URL scheme),它表示想要載入的應用程序。
還有幾種用於本地iPhone應用程序的URL方案,而且能夠使用相似的方式來啓動它們。
例如,要啓動Mail應用程序(如圖3-15所示),咱們能夠使用:
NSURL *url = [NSURL URLWithString:@"mailto:steve@apple.com subject= test"]; ide
[[UIApplication sharedApplication] openURL:url];google
要啓動SMS應用程序,咱們能夠編寫以下代碼:
NSURL *url = [NSURL URLWithString: -"sms:555-1234"]; url
[[UIApplication sharedApplication] -penURL:url];spa
要撥打一個電話號碼,咱們能夠使用以下代碼:
NSURL *url=[NSURL URLWithString:@"tel://555-1234"]; code
[[UIApplication sharedApplication] openURL:url];orm
要啓動Maps應用程序來查找一個披薩店(如圖3-16所示),咱們使用以下代碼:
NSURL *url = [NSURL URLWithString:@"http://maps.google.com/maps?q=pizza"]; htm
[[UIApplication sharedApplication] openURL:url];blog
咱們也能夠使用URL方案來啓動本身的應用程序:
用一個定製的URL方案來啓動應用程序:
1)建立一個新的基於視圖的應用程序,將其保存爲URLSchemeExample。
2)在Xcode Groups & Files面板中,展開Resource部分,而且選擇<app>-Info.plist文件。
3)鼠標右鍵點擊Information Property List鍵,並點擊添加箭頭從列表中選擇「URL types」(如圖3-17所示)。
4)展開Item 1,用鼠標右鍵點擊URL identifier,而且再次選擇添加箭頭從列表中選擇URL Schemes(如圖3-18所示)。
![]() |
圖3-16 啓動Maps應用程序並查找披薩店 |
![]() |
(點擊查看大圖)圖3-17 添加一個URL類型 |
![]() |
圖3-18 添加一個URL方案 |
![]() |
圖3-19 設置URL方案的名稱 |
5)選擇Item 1,而且將其值設置爲myapplication(如圖3-19所示)。
6)打開URLSchemeExampleView Controller.m,取消對viewDidLoad方法的註釋,而且編寫以下代碼:
[self.view setBackgroundColor:[UIColor redColor]];
構建並運行應用程序。應該看到一個沒有內容的紅色屏幕。應用程序此時不會作任何事情,可是經過運行它(安裝在iPhone或者模擬器上的應用程序),咱們只是註冊在步驟5中建立的URL方案(myapplication)。
8)咱們能夠使用以下代碼,從另外一個不一樣的應用程序啓動該應用程序:
NSURL *url = [NSURL URLWithString:@"myapplication:"];
[[UIApplication sharedApplication] openURL:url];