1

我们有一个 iOS 应用程序,它使用 UIWebView 控件来显示网页。该网页使用 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 回答