自 2007 年 7 月问世以来,Apple iPhone 在上市的 18 个月中已成为最热销的智能手机。它成功的关键因素在于其强大的 Safari Web 浏览器,该浏览器可使用户查看 Web 上的几乎任何页面,并完全支持 JavaScript 和 AJAX 等桌面浏览器通常具备的特性。本文将重点介绍如何使用 Oracle JDeveloper 和 Oracle 应用开发框架 (ADF) 移动开发针对 iPhone 进行了优化的移动 Web 应用程序。
面临的挑战
对于使用 3.5 英寸 iPhone 屏幕访问 Web 的移动用户和使用 22 英寸液晶显示器访问 Web 的久坐用户,Web 应用程序的设计存在着较大差异。这为 Web 开发人员带来了有趣的挑战,因为现在市面上的 Web 开发工具可归为两类:
针对桌面 Web 浏览器的工具:这些工具充分利用了桌面浏览器提供的 AJAX/JavaScript 功能。它们也关注 17 英寸屏幕或 1024X768 及以上分辨率的用户界面开发。
针对 HTML 移动 Web 浏览器的工具:这些工具主要是为小 (240X320) 屏幕提供用户界面。它们也使用最小公分母方法将基本 HTML 内容传送到所有的移动浏览器。 .
这两种工具实现的 Web 站点可以提供次优用户界面和大型页面下载,或不利用任何 Safari 浏览器支持的高级 AJAX 特性的普通 HTML 页面。
而 Oracle ADF 移动浏览器客户端可使开发人员在利用 iPhone Safari 浏览器的 AJAX 功能的同时,维持与仅能处理普通 HTML 或 WAP 2.0 内容的移动浏览器的完全兼容性。此外,它可以帮助开发人员创建为 iPhone 屏幕大小和移动 Web 使用而优化的用户界面。
Oracle ADF 中的移动开发基础
Oracle ADF 通过 Oracle ADF Mobile 支持移动应用程序开发。移动支持的核心是通过 MyFaces Trinidad 组件提供的 JavaServer Faces (JSF) 移动呈现器工具包以及 Oracle JDeveloper 设计时支持。这里介绍的只是 ADF Mobile 提供的关键特性中的一些:
浏览器用户代理检测和功能交付: Trinidad 组件的移动呈现器工具包会通过检测用户代理来确定客户端浏览器类型,然后根据检测到的浏览器功能提供内容。例如,当针对不支持完整 AJAX 功能的移动浏览器进行呈现时,会自动禁用部分页面刷新支持。此机制支持大量的移动浏览器,大体上可分为以下类别:
iPhone Safari 浏览器
BlackBerry 浏览器
Nokia S60 浏览器
Windows Mobile 浏览器
基本 HTML 浏览器
移动浏览器呈现优化:每个移动浏览器对各种 UI 组件的支持方式各不相同,且各个移动设备的构成因素和分辨率也有差异。Trinidad 组件会以不同的方式呈现这些 UI 元素,以确保优化用户界面的显示和布局,从而使开发人员无需思考各个目标移动设备中的变化。
完全支持 ADF 模型: 移动开发支持所有的 ADF 模型和业务逻辑组件,在 JDeveloper 中具有相同的设计时、拖放支持。
移动视图创建和组件面板: JDeveloper 中的“创建 JSF 页面”对话框允许开发人员选择移动设备作为目标对象。一旦设置,组件面板仅列出移动浏览器支持的组件 .
视图编辑器中的屏幕分辨率支持: 开发人员可以在 Oracle JDeveloper 中设置视图编辑器的大小以接近移动设备屏幕的大小。此特性使开发人员能够大致了解视图在真实移动设备上的显示情况。
关于移动支持,还有一些限制:
仅 Trinidad 组件包含用于移动设备的呈现器工具包。Oracle ADF Faces 组件现在不包含移动专用的呈现器工具包。
移动设备支持 Trinidad 组件的子集。此外,对一些 Trinidad 组件的支持会有某些限制。有关详细信息,请参阅 Oracle 技术网上的 ADF Mobile 组件标记概要页面。
开发针对 iPhone 优化的 Oracle ADF 移动应用程序
使用 Oracle ADF 和 JDeveloper 开发针对 iPhone 优化的移动应用程序的高级步骤如下:
开发或重用现有的业务逻辑组件: 由于 ADF Mobile 完全兼容 ADF 模型和业务逻辑组件,因此开发人员可以轻松地重用其他项目现有的任何业务逻辑组件。此外,还可使用支持将数据控件拖放至视图编辑器的 JDeveloper 特性。
为移动应用程序开发页面流和视图: 对于移动应用程序与 JSF 应用程序,开发页面流和视图的过程基本相同。视图编辑器中一个有用的特性就是设置画板的大小至近似移动设备分辨率的功能。Oracle JDeveloper 支持许多常见的移动分辨率,也可以手动添加 iPhone 分辨率。
针对 iPhone Safari 浏览器进行优化: 可以使用一些技巧来实现 iPhone 原有外观、与 iPhone 服务交互并改进页面转换用户体验。
下面将详细介绍添加视图编辑器分辨率和 iPhone 优化的技巧。
将 iPhone 分辨率添加到视图编辑器
视图编辑器中的屏幕分辨率列表为开发人员在设计视图时提供了可视帮助。Oracle JDeveloper 支持以下现成分辨率:240x240、240x260、240x320 和 320x240。iPhone 支持 320x480 分辨率。
要将 iPhone 分辨率添加到视图编辑器:
1.首先,定位并复制下方文件到临时位置。这是 JDeveloper 扩展文件,在 Oracle JDeveloper 中提供移动开发支持:
<JDeveloper Install Home>/jdev/extenstions/oracle.wireless.dt.jar
2.使用您喜欢的解压缩程序打开该 jar 文件并找到文件 dc.xml。在文本编辑器中或从 Oracle JDeveloper 打开该文件。请注意视图编辑器中定义各种设备分辨率项的行。例如:
<reference-device name="320 X 240" displayable-name="320 X 240" width="320" height="240" TablesCapable="true" />
3.在 240x40 分辨率项上插入以下行:
4.将更新的 dc.xml 文件保存回 oracle.wireless.dt.jar 文件。可以从解压缩程序直接打开文件并在出现提示后保存文件,或使用您喜欢的解压缩程序将文件添加回 jar 文件。
5.首先在 jdev/extensions 目录中备份原始的 oracle.wireless.dt.jar 文件。然后将更新的 oracle.wireless.dt.jar 复制回 jdev/extensions 目录。
6.需要重启 Oracle JDeveloper 以查看视图编辑器分辨率下拉列表中的其他项。