私たちのアプリは、UIWebview に依存して、ユーザーが開始した電話に続いてアプリに戻ります。多くの開発者に相談した後、アプリが正常に動作することを期待して、iOS6 では変更を加えませんでした。
今、次のことが起こりました:
1) UIWebview はまだ機能しています - ユーザーが通話を終了すると、アプリに戻ります
2) ただし、アプリはユーザーを間違った画面に誘導しています。ユーザーに表示されるはずの画面の次の画面に移動しています。ユーザーが通話を記録できる重要な画面が表示されません。
3) 唯一の例外は、ユーザーがログアウトして再度ログインしたときのようです。この場合、ユーザーは正しい画面を一度しか見ることができず、次に電話をかけると、間違った画面に再び移動します。
私はコーダーではありませんが、現状のコードを調べたところ、これは、通話の終了時に通話終了画面を呼び出す必要がある 3 つの (ほぼ同一の) コード スニペットの 1 つであるように見えますが、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 で完全に機能します。また、ログアウトとログインの後にアプリがこのページを 1 回だけ表示し、その後表示を停止するのはなぜですか?