我正在开发一个针对桌面浏览器的ASP.NET网站。我们希望启用一个可选的移动视图(例如http://m.sample.com),它将提供一些简单的页面,这些页面主要是文本。不需要AJAX甚至Javascript,也没有用户输入 - 它实际上只是一些文本表,其中有一些链接可以在页面之间导航。
设置此功能的最佳方式是什么,以便它可以在Blackberry,Windows Mobile和iPhone上运行?
我应该查看ASP.NET Mobile支持,还是仅浏览自己的网页?
更新:这是针对m.microsoftpdc.com的。我们使用了/ Mobile子文件夹方法,并使用了Scott Hanselman's iPhone tips for viewport and other stuff。
答案 0 :(得分:7)
我过去已经这样做了,我这样做的方法是通过为Desktop创建一个目录并为Mobile创建一个目录来分隔页面。这使您可以更好地分离视图,因为实际上它们有很多不同。在ASP.NET Forms中,我使用了Model View Presenter模式,因为它采用了ASP.NET Forms最佳运行方式。这样我可以在两个视图之间重用一些代码。然后在站点的index.aspx页面中,您只需解析请求的用户代理字符串,以确定浏览器并相应地重定向。因此,例如有iphone的人来到您的网站,您解析user-agent string并找出它是一部iphone。然后重定向到指向Mobile / Index.aspx页面的m.sample.com。否则,您将重定向到Desktop / Index.aspx。
我在页面级别解析了用户代理字符串,但当然你也可以在HttpModule或HttpHandler级别中执行这种逻辑。
由于我们没有定位支持WML的手机,因此我只推出了自己的网页。这是我认为使用ASP.NET Mobile支持的唯一原因,如果你也想支持支持WML的手机。
答案 1 :(得分:1)
您只确定了3个手机“平台”作为目标。需要考虑的一件事是,有更多的非Blackberry / Windows Mobile / iPhone手机,也许他们将成为您的大多数观众。 (?)
从你描述你的应用程序(JUST文本)的方式来看,你应该可以在那里点击任何支持互联网的手机,这几乎是过去八年中销售的所有手机。
滚动自己可能会让您更好地控制内容的显示和导航方式,这是您的用户会欣赏的,但是您将失去大部分自动格式化和高级交互功能,就像ASP.NET Mobile可能会给您带来的那样。根据您预计用户社区在未来两年内将采用的方式,您可能需要考虑这种权衡。
他们是否有可能在移动端要求更多桌面功能?如果它可能是“是”(当我想到你所针对的3个平台时更是如此)那么我会推荐一些像ASP.NET mobile这样的自动格式化/启用工具。如果没有,只需滚动自己,让访问者可以轻松使用。
答案 2 :(得分:0)
我从个人经验中知道,你真的没有什么需要为iPhone做的。我通常只是用我的iPhone浏览你的常规网站。
虽然只是我的两分钱。
答案 3 :(得分:0)
基于用户代理的不同样式表将处理“漂亮”。你在使用母版页吗?您还可以使用设备过滤器根据设备设置不同的主设备。
答案 4 :(得分:0)
今年(2009年),Mix宣布了mdbf。有关使用它来根据需要识别和重定向移动浏览器的示例,请参阅this video或this blog post by Scott Hanselman。