我正在开发Web应用程序(一个C#MVC应用程序),其中视图引擎在检测到移动浏览器时呈现不同的视图页面。特别是我的目标是Android网络工具包浏览器(在Froyo上)。奇怪的是,页面在iPhone上正确呈现。
问题在于,当我在模拟器上进行本地测试时,渲染效果很好,如果我在桌面上使用Chrome,它会渲染得很好......但是,当我在实际手机(Nexus 1和MyTouch)上进行测试时,标记是忽略,所有文本节点都呈现为文本。使用HTML5 DOCTYPE(即使使用最简单的标记)也会发生这种情况。如果我在标签中插入一个xmlns属性(xmlns =“http://www.w3.org/1999/xhtml”),它会注意标记,但是它带有它自己的一组问题(最具体的是它似乎不与JQuery Moblie合作)我更喜欢省略命名空间。
另外,就像在黑暗中拍摄一样,我明确地将内容类型设置为text / html以查看是否有帮助,但没有运气。当我说我用C#编写这个时,我确定你都知道了,但是Web服务器是IIS。
即使这个简单的标记也不起作用:
<html>
<head>
<title>html5 test for android</title>
</head>
<body>
<h1>h1 markup</h1>
<h2>h2 markup</h2>
<p>this is a paragraph of text</p>
</body>
</html>
我是移动网络开发领域的新手 - 所以我希望这是一个简单而无脑的问题,这是除了我之外的所有人都知道的事情(这就是为什么我没有找到任何方向的运气网络)。
感谢您的帮助!
答案 0 :(得分:0)
Android网络浏览器应该能够使用HTML5。上面的代码只是普通的旧HTML。您应该将HTML5 doctype放在那里:
如果仍然无效,我认为您在使用ASP.NET的浏览器功能嗅探问题时遇到了一些问题。至于jQuery,如果浏览器可以支持HTML5,你也可以尝试使用完整的jQuery。我知道它适用于Android手机,因为我已经在Android模拟器上进行了测试。首先尝试查看ASP.NET浏览器功能,因为如果ASP.NET无法定义它正在处理的浏览器和/或设备类型,它可能会降低Android webkit浏览器的浏览器功能。除此之外,您可以尝试编写非服务器页面(纯HTML文件)并查看该页面是否正确呈现。另外,尝试使用常规的jQuery 1.4.x而不是移动版本。
答案 1 :(得分:0)
问题原来是使用了mobile.browser文件(来自CodePlex)。该文件指示服务器我的android浏览器的首选mime类型是application / xhtml + xml而不是text / html。在控制器的操作方法中设置内容类型不能解决问题。我们最终在page指令中明确设置了内容类型。我们可能会重新访问此解决方案,以确定mobile.browser文件是否会继续使用。