【发布时间】:2011-03-09 21:27:20
【问题描述】:
我会撒谎在我的应用程序中拨打电话(我可以使用电话:),但我想在用户挂断后返回我离开的应用程序。 这可能吗?
【问题讨论】:
-
这个问题详细回答了你的问题。只需使用 uiwebview 来拨打电话,而不是 openURL:stackoverflow.com/questions/5317783/…
我会撒谎在我的应用程序中拨打电话(我可以使用电话:),但我想在用户挂断后返回我离开的应用程序。 这可能吗?
【问题讨论】:
不,不是。恐怕电话结束后,用户控制他们导航的位置。默认情况下,它停留在手机应用程序中,用户退出它的唯一方法是点击主页按钮,这会将他们带到主屏幕。保存您的状态,并在他们像其他人一样回来时重新加载。
【讨论】:
您无法在通话完成后自动返回应用,但如果您的应用支持 iOS 4,则其多任务处理功能(如果应用支持)可以将用户带回到他或她在通话之前中断的位置重新启动应用时调用。
如果您使用 iOS 3 或更早版本,则需要自己手动保存应用的状态,然后在重新启动时将用户带回该状态。
【讨论】:
我从 Apple 网站获得了这段代码,它运行良好:
-(IBAction) dialNumber:(id)sender{
NSString *aPhoneNo = [@"tel://" stringByAppendingString:[itsPhoneNoArray objectAtIndex:[sender tag]]] ; 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];
}
}
【讨论】:
tel:xxxxx,not tel://xxxxx 和 AFAIK 后一种形式现在被拒绝。