背景:假如有A,B兩個程式(當然都得是你自己寫的),想在A程式中判斷B程式是否存在本機上,存在就啟動他,啟動的時候彈出一個對話方塊,對話方塊的內容是A程式帶過去的。背景到此結束,下面是實現流程。
實現:
1.在B程式中開啟info.plist這個檔案建立一個key=URL types,然後在這個下面建立一個URL Schemes,然後下面的item0後面的值為“myapp”,這裡的myapp自己隨意,愛啥啥。這樣別的程式就可以用這個myapp調用這個程式了
2.在B程式中的“AppDelegate.m”這個檔案中假如下面這個方法。
- (BOOL)application:(UIApplication *)application handleOpenURL:(NSURL*)url { // 處理傳遞過來的參數 UIAlertView *alertView; NSString*text = [[url host] stringByReplacingPercentEscapesUsingEncoding:NSUTF8StringEncoding]; alertView = [[UIAlertView alloc] initWithTitle:@"Text" message:text delegate:nil cancelButtonTitle:@"OK" otherButtonTitles:nil]; [alertView show]; [alertView release]; return YES;}
這個方法明白人一看就懂,你要是不懂還是先去看基礎教程吧!這裡不做過多解釋。
這樣B程式準備工作就做好了。接下來見證神奇的一刻
3.在A程式中在你想調用的地方執行下面代碼就可以調用B程式了。
[[UIApplication sharedApplication] openURL:[NSURL URLWithString:@"myapp://瀋陽斌子測試"]];
親測如果存在是可以正常啟動的,如果不存在也不報錯。
4.至此啟動就沒問題了,如果只是單一的要判斷的話那麼改一個地方也可以實現。
BOOL isCunZai=[[UIApplication sharedApplication] canOpenURL:[NSURL URLWithString:@"myapp://志強原創"]];if(isCunZai){//存在}else{//不存在}
文章出處:http://www.cnblogs.com/zhiqiangsimida/archive/2013/01/19/IOS.html