3

概要: JavaScript 確認ダイアログで [OK] ボタンをクリックすると、そのセクションのコードが実行されません。

再現する手順:

window.location = 'myApp://openMyAppUrl' ;

timeoutIpad = setTimeout( function(){
                    var timeoutFired = new Date();

                var timeElapsed = timeoutFired.getTime() - start.getTime();

                if( timeElapsed < 3000){
                    if( confirm("You need app to continue.")){
                        if(timeElapsed < 10000){
                            var x = 1+1;
                            window.location="http://google.com/getMyApp";
                        }
                    }
                }
        }, 200);
//Timeout values of 200, 500, 1500 were attempted but same results

再現するには:

1) ウェブページで上記の js コードを使用します。2) 最初の [OK] をクリックし、確認ダイアログから [OK] をクリックします。

期待される結果:アプリが存在しない場合、 http: //google.com/getMyAppへのリダイレクトが 10 秒以内に発生するはずです。

実際の結果: confirm() ダイアログの true 条件のサブルーチンは実行されません。以下は、xcode コンソールに表示されます。

11 月 5 日 09:24:06 Tests-iPad MobileSafari[327] : * -UIApplication runModal でのアサーションの失敗:、/SourceCache/UIKit/UIKit-2903.23/UIApplication.m:9465 11 月 5 日 09:24:06 Tests-iPad MobileSafari[ 327] : * WebKit は webView:runJavaScriptConfirmPanelWithMessage:initiatedByFrame でキャッチされていない例外を破棄しました: デリゲート: 渡されたビューにはウィンドウがありません。

バージョン: 7.0.0-7.0.3 7.0.3 で問題が修正されたというレポートを見ましたが、表示されません。

4

0 に答える 0