iOS6/UIWebview重定向到应用程序的错误页面

iOS6/UIWebview重定向到应用程序的错误页面,ios,ios5,uiwebview,ios6,Ios,Ios5,Uiwebview,Ios6,我们的应用程序依靠UIWebview在用户发起电话呼叫后返回应用程序。在咨询了许多开发人员之后,我们没有对iOS6进行任何更改,希望该应用程序能够正常工作 现在,发生了以下情况: 1 UIWebview仍在工作-在用户结束通话时将其带回应用程序 2然而,该应用程序将用户引导到错误的屏幕-它将用户引导到用户应该看到的屏幕之后的屏幕。用户可以记录电话的关键屏幕没有出现 3唯一的例外似乎是当用户注销并重新登录时-在这种情况下,他们只能看到一次正确的屏幕,然后下次打电话时,他们会再次进入错误的屏幕 我不

我们的应用程序依靠UIWebview在用户发起电话呼叫后返回应用程序。在咨询了许多开发人员之后,我们没有对iOS6进行任何更改,希望该应用程序能够正常工作

现在,发生了以下情况:

1 UIWebview仍在工作-在用户结束通话时将其带回应用程序

2然而,该应用程序将用户引导到错误的屏幕-它将用户引导到用户应该看到的屏幕之后的屏幕。用户可以记录电话的关键屏幕没有出现

3唯一的例外似乎是当用户注销并重新登录时-在这种情况下,他们只能看到一次正确的屏幕,然后下次打电话时,他们会再次进入错误的屏幕

我不是一名编码员,但在查看了当前的代码后,看起来这是三个几乎相同的代码片段之一,应该在电话结束时调用End Call屏幕,但在iOS6下不是:

- (IBAction)onCall:(id)sender
{
DashCaller *caller = [[DashCaller alloc] init];

NSString *callNumber = _phone.number;
if (!callNumber)
{
    callNumber = @"No Phone number";
}
else if (callNumber.length == 0)
{
    callNumber = @"No Phone number";
}
else
{
    callNumber = [callNumber stringByAddingPercentEscapesUsingEncoding:NSUTF8StringEncoding];
}

DashDelegate.calledPhone = _phone;
DashDelegate.callLogVC.delegate = _viewController;
DashDelegate.callStartDate = [NSDate date];

NSUserDefaults *setting = [NSUserDefaults standardUserDefaults];
NSNumber *blockNumber = [setting valueForKey:BLOCK_NUMBER];
NSURL *url = nil;

if (blockNumber.boolValue)
    url = [NSURL URLWithString:[NSString stringWithFormat:@"tel://%@%@", kStringBlockNumber, callNumber]];
else {
    url = [NSURL URLWithString:[NSString stringWithFormat:@"tel://%@", callNumber]];
}

[caller callTelURL:url];
}
具体来说,行DashDelegate.callLogVC.delegate=\u viewController;看起来它应该调用CallLogVC视图,但是它将转到该视图后面的屏幕


有没有人想到要改变什么可能会受到iOS6的影响?该应用程序在iOS5中功能齐全。而且,为什么应用程序在注销登录后只显示此页面一次,然后停止显示它

要返回到原始应用程序,您可以使用telprompt://而不是tel://-tell提示符将首先提示用户,但当通话结束时,它将返回到您的应用程序:

NSString *phoneNumber = [@"telprompt://" stringByAppendingString:mymobileNO.titleLabel.text];
[[UIApplication sharedApplication] openURL:[NSURL URLWithString:phoneNumber]];
您也可以尝试这些应用程序委派方法,以便在调用完成后还原应用程序

- (void)applicationDidBecomeActive:(UIApplication *)application;

- (BOOL) application:(UIApplication *)application shouldSaveApplicationState:(NSCoder *)coder NS_AVAILABLE_IOS(6_0);

- (BOOL) application:(UIApplication *)application shouldRestoreApplicationState:(NSCoder *)coder NS_AVAILABLE_IOS(6_0);

你的问题一点也不清楚。。。。请说得更具体些。。。。你到底想说什么还不清楚……嗨,萨利斯!我的问题是:之前,当应用程序返回时,它会进入通话记录屏幕。现在,使用iOS6下完全相同的代码,它会像预期的那样返回到应用程序中,但会跳过中间通话记录屏幕,返回到用户发起通话的地方。它跳过了存储应用程序处理的关键信息的屏幕——我试图找出原因。非常感谢。谢谢你!我的问题是,即使我进入DashCaller方法并将其更改为使用telprompt而不是UIWebview,这个问题似乎是在返回应用程序后发生的——它只是没有进入正确的页面,而在它之前。你有没有想过为什么上面会有这样的注释?事实上,我很难理解你的问题并提出解决方案。。。。看起来你来自非objective c非ios背景,但我仍然觉得我可以帮助你,如果你可以发布一些你想要的和你得到的截图。。。。另外,如果上面列出的方法存在于名为AppDelegate的类中,请发布它们的代码。如果你愿意,我们可以有一个skype。。。