1

UIWebView コントロールを使用して Web ページを表示する iOS アプリがあります。この Web ページでは、jQuery を使用して jConfirm 確認ダイアログを表示します。ユーザーがキャンセル ボタンを押しても、応答しません。Javascript は、キャンセルを処理するために asp.net ページにポストバックを発行することになっています。Safari/iPhone、Chrome/Android、さらには Android/WEBview ネイティブ アプリでも問題なく動作します。ただし、UIWebView を使用する iPhone ネイティブ アプリでは機能しません。

以下は、キャンセルを押したときの JConfirm と DoPostback への呼び出しのコード スニップです。JQuery 1.6.4 を使用しています。これが JConfirm と UIWEbView コントロールの既知の問題かどうか知っている人はいますか? ありがとう、ダン

    function showCancelDialog() {
        //set up the confirmation dialog
        $.alerts.okButton = "Yes";
        $.alerts.cancelButton = "No";
        $.alerts.buttonStyle = "font-size:medium; border-bottom: 1px solid #666688; border-right: 1px solid #666688; border-left: 1px solid #eaeaea;  border-top: 1px solid #eaeaea; background-color: #dCdBd6;";
        $.alerts.overlayOpacity = 0.7;

        //confirm to cancel or not
        jConfirm('Your payment will be cancelled. <br> Continue to cancel?', 'Cancel Payment?', function (r) {

            if (r) {
                //they have pressed Yes.
                //now force a server side post back on the asp.net Cancel button
                __doPostBack($(cancelButton).attr('name'), '');
                return true;
            } else {
                return false;
            }
        })

    }
4

1 に答える 1

0

更新: 別の SO ブログ エントリでこの問題に対する回答を見つけました。

UIWebview と iPhone のコンテンツがポストバックされない (ASP.NET ブラウザー機能の問題)

簡単に言えば、解決策は @Page レベル ディレクティブ ClientTarget = "uplevel" を設定するか、コード ビハインドを使用してページ ロードで実行することです。

ちなみに、ClientTarget を web.config に配置してサイト全体で実現する方法がわかりませんでした。誰かがそれを理解したら、ここに解決策を投稿してください。

于 2012-09-19T22:23:48.170 に答える