如何在應用程序內撥打電話或在通話結束後立即啓動應用程序?我知道這是可能的,因爲應用程序商店中的一些應用程序已經在執行此操作。iPhone SDK:在通話結束後啓動應用程序
2
A
回答
6
我從蘋果網站上的這個代碼,它完美的作品:
-(IBAction) dialNumber:(id)sender{
NSString *aPhoneNo = [@"tel://" stringByAppendingString:[itsPhoneNoArray objectAtIndex:[sender tag]]] ; NSURL *url= [NSURL URLWithString:aPhoneNo];
NSURL *url= [NSURL URLWithString:aPhoneNo];
NSString *osVersion = [[UIDevice currentDevice] systemVersion];
if ([osVersion floatValue] >= 3.1) {
UIWebView *webview = [[UIWebView alloc] initWithFrame:[UIScreen mainScreen].applicationFrame];
[webview loadRequest:[NSURLRequest requestWithURL:url]];
webview.hidden = YES;
// Assume we are in a view controller and have access to self.view
[self.view addSubview:webview];
[webview release];
} else {
// On 3.0 and below, dial as usual
[[UIApplication sharedApplication] openURL: url];
}
}
0
如果您想在應用內撥打電話,您可以使用tel:
網址。
這是一種將電話號碼作爲字符串併發起呼叫的方法。
- (void)dialNumber: (NSString*)telNumber
{
// fix telNumber NSString
NSArray* telComponents = [telNumber componentsSeparatedByCharactersInSet: [NSCharacterSet whitespaceAndNewlineCharacterSet]];
telNumber = [telComponents componentsJoinedByString: @""];
NSString* urlString = [NSString stringWithFormat: @"tel:%@", telNumber];
NSURL* telURL = [NSURL URLWithString: urlString];
//NSLog(@"Attempting to dial %@ with urlString: %@ and URL: %@", telNumber, urlString, telURL);
if ([[UIApplication sharedApplication] canOpenURL: telURL])
{
[[UIApplication sharedApplication] openURL: telURL];
}
else
{
UIAlertView* alert = [[UIAlertView alloc] initWithTitle: NSLocalizedString(@"Dialer Error", @"")
message: [NSString stringWithFormat: NSLocalizedString(@"There was a problem dialing %@.", @""), telNumber]
delegate: nil
cancelButtonTitle: NSLocalizedString(@"OK", @"")
otherButtonTitles: nil];
[alert show];
[alert release];
}
}
3
我覺得有兩個部分,以本
- 的應用程序已經運行,並且用戶收到提示,指示電話來電時,要求接受或拒絕
- 用戶收到電話,但應用程序未運行
在第一種情況下,您的UIApplicationDelegate將收到消息application:willChangeStatusBarFrame:
,application:didChangeStatusBarFrame:
,applicationWillResignActive:
和applicationDidBecomeActive:
所有可能多次取決於用戶是否選擇接聽電話,如果他們選擇離開您的應用程序,可能還有applicationWillTerminate:
。您還可以使用NSNotificationCenter從未註冊爲應用程序代理的類中觀察這些事件,有關詳細信息,請參閱UIApplication類參考的「通知」部分。
在第二種情況下,我不知道在通話結束時,官方的SDK無法啓動您的應用程序。你能提供一個這樣做的應用程序的列表嗎?
編輯:
我想我明白你的意思了。您應該遵循@jessecurry的建議,UIApplication
上的openURL
與tel:
協議將撥打電話。至於他們聲稱「做不可能」並且在打電話時不退出應用程序,我不確定他們是如何做的,因爲我沒有寫。他們可能會使用Skype等外部VOIP服務,或者只是在不可見的Web表格中加載tel:
網址。由於我沒有嘗試過,所以我都不能評論。
1
它是通過使用電話的telprompt代替完成。請看以下代碼
[[UIApplication sharedApplication] openURL:[NSURL URLWithString:@「telprompt:18004912200」]];
相關問題
- 1. 在通話結束時啓動我的iPhone應用程序
- 2. 如何在通話結束後啓動應用程序?
- 3. 如何在通話結束時調用/啓動應用程序?
- 4. 在通話結束後,重新啓動iphone
- 5. 如何在iPhone關閉應用程序後獲得通話結束通知?
- 6. 每次通話結束後在iOS中調用應用程序
- 7. 如何在通話結束後返回到我的iPhone應用程序?
- 8. 在通話結束後Automatiquelly恢復應用程序
- 9. 啓動應用程序通話
- 10. Windows Phone中的通話結束通知並啓動應用程序
- 11. 從iPhone應用程序撥打電話編程和結束通話
- 12. iPhone通話時自動啓動應用程序
- 13. 通話結束後的應用程序開始
- 14. 在iPhone啓動(啓動)或關機後加載應用程序
- 15. 應用程序不通電話後重新啓動
- 16. iPhone應用程序啓動
- 17. 在iPhone SDK中啓動兩個應用程序?
- 18. Xcode iPhone SDK - 在應用程序上顯示gif圖像啓動
- 19. 如何在iPhone中查找應用程序啓動和結束時間?
- 20. 應用程序變量在會話結束後得到重置
- 21. 結束通話後致電活動
- 22. 在lisp程序結束後emacs lisp中的啓動過程
- 23. 傳輸守護進程在下載結束後啓動程序
- 24. 處理Android應用程序暫停來電並在通話結束後恢復
- 25. iPhone SDK-從我的應用程序內啓動YouTube應用程序
- 26. 如何讓iPhone應用程序在升級後自動啓動?
- 27. 應用程序凍結,然後在啓動畫面上崩潰
- 28. 在我從iPhone收到特定號碼的電話後啓動應用程序
- 29. iphone應用程序自動啓動
- 30. 我無法通過SSH結束自動啓動的X11應用程序
使用webview進行調用。它在這個問題中正確解釋:http://stackoverflow.com/questions/5317783/return-to-app-behavior-after-phone-call-different-in-native-code-than-uiwebview – 2011-09-26 08:27:47