导航栏
导航栏为 iPhone 应用程序提供了主要的导航机制。在前面的示例中,导航栏位于屏幕的顶部,提供了可打开另一视图的单击按钮。以下将详细介绍导航栏:
导航栏的代码如下所示:
<tr:panelHeader text="Details" styleClass="toolbar" rendered="true">
<tr:commandLink text="Agent" styleClass="button"
rendered="true"
action="toAgent"/>
<tr:commandLink text="Intro" styleClass="backButton"
rendered="true"
action="backtoIntro"/>
</tr:panelHeader>
同样,有关 listingImage 等样式类的定义可在示例 iPhone CSS 文件中找到。
与 iPhone 服务交互
移动设备浏览器通常提供一些与设备上服务的基本交互,例如电话功能和电子邮件功能。iPhone 通过添加与 iPhone Google Maps 应用程序的交互而前进了一步。使用 Oracle ADF 和 JDeveloper 来利用这些功能只需几行代码。通过轻松访问电话号码和地址等数据所在的绑定层,Oracle ADF 和 JDeveloper 使用户可以轻松地执行诸如拨打数据库字段中电话号码等操作。
电话服务
iPhone Safari 在页面上内置了识别电话号码的功能,允许用户单击并拨打此号码。但是,此功能并非屡试不爽。如果电话号码只是显示在 outputText 字段中,则无法确保 iPhone 将其识别为电话号码。
要确保 iPhone 能识别出电话号码,开发人员应在 tr:goLink 组件中显示电话号码,并将 tel:添加到 goLink 的目标属性。拨打电话号码的示例代码包含在会话变量 houseDetails 和字段 AgentPhone 中:
<tr:goLink styleClass="messageLink"
destination="tel:#{sessionScope.houseDetails.AgentPhone}"
text="#{sessionScope.houseDetails.AgentPhone}"/>
此外,iPhone 提供了对 RFC 2086 协议的部分支持,因此可以,例如,拨打电话号码后停顿几秒钟,然后再拨打分机号码。电话号码可能也包含字母,这种情况下 iPhone 会拨打与这些字母对应的号码。让我们来看包含伪电话号码的示例代码以更好地理解这一点:
<tr:goLink styleClass="messageLink"
destination="tel:1-800-use-jdev;pp8”
text="1-800-use-jdev"/>
这种情况下 iPhone 会拨打 1-800-873-5338,等待 2 秒,然后拨打 8。
电子邮件客户端
iPhone Safari 浏览器也提供了 iPhone 电子邮件客户端接口。要调用填写了电子邮件目的地的电子邮件客户端,开发人员应使用 tr:goLink 组件来显示电子邮件字段并将 mailto:添加到组件的目标属性,例如:
<tr:goLink styleClass="messageLink"
destination="mailto:#{sessionScope.houseDetails.AgentEmail}"
text="#{sessionScope.houseDetails.AgentEmail}"/>
用户链接到 goLink 时,iPhone 电子邮件客户端就会启动,且会用AgentEmail 变量的内容填充 To: 字段。
iPhone 也支持其他电子邮件字段的填充。开发人员只需将下方内容添加到 goLink 组件的目标属性:
添加多个收件人:通过逗号 (,) 分隔即可添加其他电子邮件地址
电子邮件主题:subject=
抄送收件人:cc=
密送收件人:bcc=
消息文本:body=
需要以字符“?”分隔各个字段。
例如,下方代码会预填充电子邮件的主题、抄送收件人和消息文本:
<tr:goLink styleClass="messageLink"
destination="mailto:john.doe@oracle.com,
jane.doe@oracle.com?subject=Questions?
cc=myname@myhome.com?
body=I have questions for you”
text="#{sessionScope.houseDetails.AgentEmail}"/>
iPhone Google Maps
iPhone Safari 浏览器会拦截对 http://maps.google.com 的调用,并转而调用 iPhone 上的 Google Maps 应用程序。也部分支持在 Google Maps 应用程序中的特定地址加一个图钉标记。加了图钉标记后,iPhone 用户可以使用 GPS 和“获取说明”功能来导航到此地址,甚至在街道级查看地址外观。
要访问此功能,开发人员应使用 tr:goLink 组件,然后使用可链接到 Google Maps 和地址的 URL 填充 goLink 组件的目标属性。Google Maps URL 应为以下格式:
http://maps.google.com/maps?q=<Address_Field>
例如,下方代码会在会话变量 houseDetail.Street、houseDetail.City 和 houseDetail.Zip 指定的位置加一个图钉标记。
<tr:goLink styleClass="messageLink"
destination="http://maps.google.com/maps?q=#{sessionScope.houseDetails.Street},
+#{sessionScope.houseDetails.City},
+#{sessionScope.houseDetails.Zip}"
text="#{sessionScope.houseDetails.Street}"/>
也可以使用此特性编写行车方向程序。Google Maps URL 应为以下格式:
http://maps.google.com/maps?saddr=<Start_Address>&daddr=<destination_address> </destination_address>
这是一个非常强大的特性;它允许 ADF 和 JDeveloper 开发人员只需几行代码即可调用行车方向功能。用户只需单击 ADF Mobile 视图上的链接即可通过 Google Maps 功能获取位置或行车方向。
结论
iPhone 重新定义了移动设备的“使用简便性”;几乎所有人都可以轻松地了解并使用它,而无需大量培训。原因众所周知:iPhone 核心应用程序的用户界面与设备硬件的完美配合。任何运行在 iPhone 上的其他应用程序都需要遵守此用户界面标准,否则使用此应用程序时,用户将丧失“使用简便性优势”。在本文中,您了解了如何使用 Oracle ADF 和 JDeveloper 轻松开发用户界面,现在,所有的开发人员都可以快速地创建引人注目的 iPhone Web 应用程序。