2012-10-10 53 views
1

我們的應用程序依靠UIWebview在用戶發起的電話呼叫之後返回到應用程序。在諮詢了一些開發人員之後,我們沒有對iOS6做任何改變,期待應用程序正常工作。iOS6/UIWebview重定向到應用程序的錯誤頁面

現在,出現以下情況:

1)UIWebView的仍然是工作 - 使用戶返回到應用程序,當他們結束通話

2)但是,應用程序是指導用戶對錯誤的屏幕 - 它正在將其帶到用戶應該看到的屏幕後面。關鍵的屏幕,用戶可以登錄他們的電話沒有出現。

3)唯一的例外似乎是當用戶註銷並重新登錄時 - 在這種情況下,他們只能看到正確的屏幕一次,然後下一次他們打電話時他們再次進入錯誤的屏幕。

我不是一個編碼器,但通過查看代碼後,它看起來像這是三個(幾乎相同)的代碼片段之一,應該在電話結束時調用結束呼叫屏幕,但是在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 = _viewController;」看起來應該是調用CallLogVC視圖,而是轉到應該在該視圖之後出現的屏幕。

想要改變什麼的人(可能會受到iOS6的影響)?該應用程序在iOS5中完全可用。而且,爲什麼應用程序在註銷登錄後僅顯示一次該頁面,然後停止顯示它?

+0

你的問題根本不清楚....請更具體的....而且它根本不清楚你想告訴什麼...... – iSaalis

+0

嗨薩利斯!我的問題是:之前,當應用程序返回時,它轉到呼叫日誌屏幕。現在,使用與iOS6完全相同的代碼,它會回到應用程序中(如預期的那樣),但會跳過中間的「呼叫日誌」屏幕並返回到用戶啓動呼叫的位置。它正在跳過存儲應用程序處理的關鍵信息的屏幕 - 我試圖找出原因。謝謝! –

回答

0

要返回原來的應用程序,你可以使用telprompt://而不是電話:// - 在訴說提示首先會提示用戶,但是當通話結束後,將返回到您的應用程序:

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); 
+0

謝謝!我的問題是,即使我進入DashCaller方法並將其更改爲使用telprompt而不是UIWebview,這個問題似乎也發生在POST返回到應用程序 - 它只是沒有進入正確的頁面。有關爲什麼給出上述註釋的任何想法? –

+0

實際上,我很難理解你的問題並提出一個解決方案....因爲它似乎來自非客觀的非Ios背景,但我仍然覺得如果你可以發佈一些截圖,可以幫助你你想要什麼,你得到了什麼......另外,如果它們存在於用AppDelegate命名的類中,請將上述方法的代碼發佈出來。如果你想我們可以有一個Skype ... – iSaalis

相關問題