原則上iOS的沙箱原理,是阻止一個app去訪問其他app的資源乃至是系統(tǒng)底層的資源的但是我們可以通過一種變相的方式:通過對應(yīng)的URL模式和其他程序進(jìn)行通訊.
iOS應(yīng)用之間的調(diào)用步驟:
一, 調(diào)用自己開發(fā)的應(yīng)用
1)在plist文件中,注冊對外接口
在xcode group&files 里面读第,展開 resources選擇info.plist
鼠標(biāo)右擊information property list 锌介,然后從列表中選擇URL types
右擊 add row 添加一個對象(item)右擊item add row
從列表中選擇 URL Schemes 再右擊添加一個對象(item1)
將item1得值設(shè)置為:myapp
這個myapp就是對外接口,其它應(yīng)用可以通過它讥此,調(diào)用該應(yīng)用
plist如下圖所示:
iOS 如何在一個應(yīng)用程序中調(diào)用另一個應(yīng)用程序 - 天鷹 - 個人資料庫
2).處理URL請求
應(yīng)用程序委托在 application:handleOpenURL:方法中處理傳遞給應(yīng)用程序的URL請求救崔。如果您已經(jīng)為自己 的應(yīng)用程序注冊了定制的URL模式,則務(wù)必在委托中實(shí)現(xiàn)這個方法筛圆。
下面代碼實(shí)現(xiàn)了這個委托方法;
- (BOOL)application:(UIApplication *)application handleOpenURL:(NSURL *)url
{
if([[url scheme] isEqualToString:@"myapp"]){
[application setApplicationIconBadgeNumber:10];
return YES;
}
return NO;
}
3).測試外部調(diào)用
1.回到Home屏幕,啟動Safari(在iPhone仿真器上,在菜單上選擇Hardware->Home命令就可以回到Home屏幕)椿浓。
2.在Safari的地址欄中,鍵入使用定制模式的URL: myapp:
3.確認(rèn)您的應(yīng)用程序是否啟動,以及應(yīng)用程序委托是否收到application:handleOpenURL:消息太援。
4)調(diào)用方法
在你需要調(diào)用上面注冊過對外接口的應(yīng)用中,添加下面代碼即可
NSURL *url = [NSURL URLWithString:@"myapp:"];
[[UIApplication sharedApplication] openURL:url];
通過上述兩個步驟,你可以在你的應(yīng)用中,讓用戶打開你的其它應(yīng)用