2012-10-10 4 views
1

Google 앱은 UIWebview를 사용하여 사용자가 시작한 전화를 따라 앱으로 돌아갑니다. 많은 개발자를상의 한 후에 iOS6을 변경하지 않았으므로 앱이 정상적으로 작동 할 것으로 예상됩니다. 이제iOS6/UIWebview 앱의 잘못된 페이지로 리디렉션

, 다음이 발생

1)의 UIWebView 여전히 노력하고 있습니다 - 그들은

2) 그러나 앱이 사용자를 지시하고 통화를 종료 할 때 응용 프로그램에 다시 사용자를 데려 잘못된 화면 - 사용자가 볼 수있는 화면에 표시됩니다. 사용자가 전화 통화를 기록 할 수있는 중요한 화면이 표시되지 않습니다.

3) 유일한 예외는 사용자가 로그 아웃하고 다시 로그인 할 때인 것처럼 보입니다.이 경우 올바른 화면 만 볼 수 있으며 다음에 다시 잘못된 화면으로 이동하면 다시 볼 수 있습니다.

나는 코더가 아니지만 코드를 살펴본 후 이것이 통화 끝에서 최종 통화 화면을 호출해야하는 코드의 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

안녕 Saalis! 내 질문입니다 : 이전에, 응용 프로그램이 반환되면, 그것은 통화 기록 화면에 갔다. 이제 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 메서드로 이동하여 UIWebview 대신 telprompt를 사용하도록 변경 한 경우에도이 문제가 발생하여 응용 프로그램으로 돌아 오는 것 같습니다. 이전에는 올바른 페이지로 이동하지 않았습니다. 왜 위의 노트가 주어 지는지에 대한 생각? –

+0

실제로, 당신의 문제를 이해하고 해결책을 제시하는 것이 어렵습니다 ... 비 객관적인 C non-ios 배경에서 나온 것처럼 보입니다. 그러나 여전히 당신이 어떤 스크린 샷을 게시 할 수 있다면 당신을 도울 수 있다고 생각합니다. 당신이 원하는 것과 무엇을 얻고 있는지 ... 또한 AppDelegate라는 이름의 클래스에 존재한다면 위에 열거 된 메소드의 코드를 친절하게 게시하십시오. 원하는 경우 우리는 스카이프를 가질 수 있습니다 ... – iSaalis