Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/iphone/36.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
UIWebview和IPhone内容不回发(ASP.NET浏览器功能问题)_Iphone_Asp.net_Uiwebview_Safari_Xamarin.ios - Fatal编程技术网

UIWebview和IPhone内容不回发(ASP.NET浏览器功能问题)

UIWebview和IPhone内容不回发(ASP.NET浏览器功能问题),iphone,asp.net,uiwebview,safari,xamarin.ios,Iphone,Asp.net,Uiwebview,Safari,Xamarin.ios,我有一个简单的页面,它的结构如下(伪代码): 在任何桌面浏览器中,dd1发回并触发“SelectedIndexChanged”服务器事件。但是,在IPhone safari或IPhone webview中,不会进行回发。我之所以知道这一点,是因为没有显示网络活动指示器,而且我已经将一个调试器挂接到了捕获所有服务器端事件的站点,并且它从未被命中。有时,大约每2小时一次,回发在iphone上可以正常工作,但极为罕见且间歇性 Dd1是一个日期下拉列表,它加载一个时间段下拉列表,该时间段下拉列表依赖

我有一个简单的页面,它的结构如下(伪代码):


在任何桌面浏览器中,dd1发回并触发“SelectedIndexChanged”服务器事件。但是,在IPhone safari或IPhone webview中,不会进行回发。我之所以知道这一点,是因为没有显示网络活动指示器,而且我已经将一个调试器挂接到了捕获所有服务器端事件的站点,并且它从未被命中。有时,大约每2小时一次,回发在iphone上可以正常工作,但极为罕见且间歇性

Dd1是一个日期下拉列表,它加载一个时间段下拉列表,该时间段下拉列表依赖于日期下拉列表中的选定项。这个表单在很多地方被重复使用,我不想改变基本结构,除非这是最后的努力

在safari设置中启用了Javascript


够简单吧?我正试图找出如何调试Web视图上的javascript错误,但我想知道是否有人知道造成这种行为的原因是什么。

iPhone UIWebView的用户代理未被ASP.NET 4.0识别,因此ASP.NET作为默认版本,该页面的底层版本不包含javascript。iPhone webview用户代理是:

Mozilla/5.0(iPhone;U;CPU iPhone OS 4_3_5,如Mac OS X;en us)AppleWebKit/533.17.9(KHTML,如Gecko)Mobile/8L1

为了避免这种情况发生,我将页面的“ClientTarget”属性更改为“UpLevel”,它绕过asp.net尝试了解浏览器功能,只提供“UpLevel”版本的javascript和所有内容

我的页面页面加载中的解决方案:

Me.ClientTarget=“uplevel”


this.ClientTarget=“uplevel”

这是一种黑客行为。修复应用程序浏览器或更新全局浏览器列表更干净。请参阅pravav rastogi(Microsoft的工作人员)在中发布的解决方案,在该链接中的注释中有人提到该修复程序将在下一个asp.net运行时版本中发布。。。这在.NET4.5中是固定的吗?对不起,我不知道。您可以尝试安装它,并查看机器的浏览器文件副本是否已更新。在
\Windows\Microsoft.NET\Framework[X1]\v[X2]\Config\Browsers\*
上运行差异。
<aspx page>
    <ascx control>
        <asp:dropdownlist id="dd1" autoPostback=true />
        <asp:dropdownlist id="dd2" />
    </ascx control>
</aspx page>