在ASP.NET中创建一个可在Blackberry,Windows Mobile和iPhone上运行的微型站点

在ASP.NET中创建一个可在Blackberry,Windows Mobile和iPhone上运行的微型站点

Creating a mini-site in ASP.NET that works on Blackberry, Windows Mobile, and iPhone

我正在针对台式机浏览器的ASP.NET网站上工作。 我们希望启用一个可选的移动视图(例如http://m.sample.com),该视图将提供一些简单的页面,大部分为文本。 不再需要AJAX甚至Javascript,也不需要用户输入-实际上只是带有几个链接的文本表,这些链接可在页面之间导航。

进行设置以使其在Blackberry,Windows Mobile和iPhone上都能正常工作的最佳方法是什么?

我应该在寻找ASP.NET Mobile支持,还是只是滚动自己的页面?

更新:这是为m.microsoftpdc.com。 我们使用/ Mobile子文件夹方法,并使用了Scott Hanselman的iPhone技巧来查看视口和其他内容。


我过去曾经这样做过,而我的做法是通过为Desktop创建目录并为Mobile创建目录来分隔页面。这使您可以更好地分离视图,因为实际上它们有很大的不同。在ASP.NET Forms中,我使用了Model View Presenter模式,因为它与ASP.NET Forms发挥最佳功能的方式一起使用。这样,我可以在两个视图之间重用一些代码。然后,在站点的index.aspx页面中,您只需解析请求的用户代理字符串以找出浏览器并进行相应的重定向。因此,例如,一个拥有iphone的人来到您的网站,您可以分析用户代理字符串并确定它是iphone。然后,您重定向到指向Mobile / Index.aspx页面的m.sample.com。否则,您将重定向到Desktop / Index.aspx。

我在页面级别进行了用户代理字符串的解析,但是当然您也可以在HttpModule或HttpHandler级别进行这种逻辑。

编辑

因为我们没有针对支持WML的手机,所以我只是滚动了自己的页面。在我看来,这就是使用ASP.NET Mobile支持的唯一原因,即是否也要支持支持WML的电话。


您仅确定了3个手机"平台"作为目标。要考虑的一件事是,还有更多的非Blackberry / Windows Mobile / iPhone手机可能会在您的受众中占多数。 (?)

从描述应用程序的方式(仅文本)来看,您应该能够找到几乎所有支持Internet的手机,这几乎是过去八年中售出的每部手机。

滚动自己的内容可能会给您更多控制内容显示和导航的方式的信息,用户会喜欢,但是您将失去ASP.NET Mobile之类的自动格式化和高级交互功能。您可能希望根据未来两年用户社区的发展情况来权衡一下。

他们是否有可能要求在移动端提供更多的桌面功能?如果可能的答案是"是"(当我想到您要定位的3个平台时更是如此),那么我建议您使用一些自动格式化/启用工具,例如ASP.NET mobile。如果不是这样,那就自己动手做,让访问者轻松简单地使用它。


在今年的Mix(2009)上,mdbf被宣布。请参阅该视频或Scott Hanselman的此博客文章,以获取有关根据需要使用该视频标识和重定向移动浏览器的示例。


基于用户代理的不同样式表将处理"漂亮"。您正在使用母版页吗?您还可以使用设备过滤器根据设备设置不同的主机。


从个人经验中我知道,iPhone确实不需要做太多事情。我通常宁愿使用iPhone浏览您的常规站点。

不过只有我的两分钱。


推荐阅读

    浏览器调用linux命令?

    浏览器调用linux命令?,系统,信息,人工智能,软件,数据,首次,地址,代码,咨询,

    linux下并行运行命令?

    linux下并行运行命令?,系统,服务,工作,命令,环境,网络,暂停,文件,脚本,参数,l

    linux命令行后台运行?

    linux命令行后台运行?,服务,状态,标准,暂停,命令,后台,连续,地方,工作,方法,l

    脚本运行linux命令?

    脚本运行linux命令?,系统,环境,工具,工作,位置,底部,代码,发行,官网,终端,lin

    linux进程运行命令?

    linux进程运行命令?,系统,工作,状态,地址,信息,进程,基础,命令,管理,软件,lin

    linux安装浏览器命令?

    linux安装浏览器命令?,官网,系统,平台,网站,管理,设备,咨询,工具,官方网站,

    linux网站根目录命令?

    linux网站根目录命令?,系统,一致,设备,网站,目录,根目录,信息,标准,位置,电

    linux启用命令模式?

    linux启用命令模式?,系统,密码,数字,首页,电脑,情况,终端,界面,模式,命令,安

    linux显示运行命令?

    linux显示运行命令?,系统,服务,状态,信息,工具,数据,电脑,标准,管理,时间,如

    linux运行vim命令?

    linux运行vim命令?,系统,工具,官方网站,模式,基础,数据,代码,环境,入口,命令

    linux监控命令运行?

    linux监控命令运行?,系统,工作,地址,信息,工具,情况,标准,环境,命令,状态,lin

    linux启用6g命令?

    linux启用6g命令?,系统,工作,情况,信息,设备,指标,管理,地址,命令,状态,在lin

    linux中命令停止运行?

    linux中命令停止运行?,系统,代码,第一,命令,进程,指令,程序,方法,接线,硬盘,l

    linux访问网站的命令?

    linux访问网站的命令?,地址,系统,服务,工作,网站,命令,网络,管理,信息,网址,L

    linux自动运行命令?

    linux自动运行命令?,服务,系统,时间,代码,周期性,第一,命令,管理,在线,状态,l

    linux开启运行命令?

    linux开启运行命令?,系统,服务,工作,管理,状态,命令,标准,情况,环境,工具,lin

    linux运行wps命令?

    linux运行wps命令?,软件,官网,名称,时间,电脑,系统,工具,环境,项目,数据,wps

    linux运行cmd命令?

    linux运行cmd命令?,电脑,系统,状态,情况,环境,命令,单位,管理,设备,数据,电脑

    linux运行两个命令?

    linux运行两个命令?,网络,地址,系统,工作,暂停,命令,网站,密码,网上,入口,Lin

    linux启动浏览器命令?

    linux启动浏览器命令?,系统,情况,发行,不了,官网,环境,工具,传播,基础,软件,