设计面向IE for Pocket PC的Web站点(六)
设计电子商务表单设计表单时应牢记屏幕宽度为240像素。输入控件应放置在不同行上,以避免不必要的滚动。各个域应限制在小型屏幕区域内。如果需要显示客户选定的产品图像,应将相关描述文字放置在图像下放而非后部。
为信息站点提供最佳性能
除为电子商务站点提供最佳性能所需注意的问题外,在设计信息站点时,还需注意其它一些要点:
信息站点应支持脱机浏览
避免使用那些不支持脱机工作的元素,如表单域、大位图、GIF动画或过多的广告。许多新的信息站点要求对指定文章给予简短反馈。由于需要向服务器发回信息,脱机用户将不能使用这项功能。然而,Pocket PC支持在脱机状态下发送电子邮件消息,因此,可以在页面中加入mailto链接。
将精力集中在实质性内容上
不要显示那些Pocket Internet Explorer用户不大可能浏览的链接,如视频/音频链接或大型图片的幻灯显示。
在相互链接的页面间使用内容表格页面
许多新的信息站点创建包含文章简介的页面,并且通过一个位于页面底部名为“点击此处阅读更多信息”的链接指向文章的完整内容。这种方式在针对Pocket Internet Explorer的脱机实施方案中并不十分有效。大多数用户通常不会在Mobile Favorites(移动收藏夹)中改变链接深度。事实上,他们会保持缺省值(0)。在过后的旅途中,当他们试图点击这样的链接来阅读文章时,会导致“页面不可用”错误。此外,即便用户想阅读整篇文章也很难确定实际使用过程中应当设定的链接深度。
为避免发生上述情况,可以创建简短的介绍性页面,并在该页面中包含指向所有文章的链接。这种方式仍需要用户将链接深度改为“1”,但它使整个过程对用户来说更为清晰。可以在该页面中加入提示以告知用户在同步选项中应设置的链接深度。
编写脚本
随着复杂Web应用的重要性不断增加,编写客户端脚本变得越来越流行。
Pocket Internet Explorer支持客户端JavaScript 1.1(ECMA-262)。但不支持VBScript。依照惯例,Pocket Internet Explorer支持Internet Explorer 3.02 DOM(文档对象模型)。
以下是一些在Pocket Internet Explorer中编写脚本时需要指出的问题:
脚本错误缺省情况下处于关闭状态
JScript中的语法错误、缺少对象或其它JScript错误在Pocket Internet Explorer中将被忽略。相应脚本将在没有任何提示的情况下终止。添加以下注册表键可以启用错误消息。
[HKEY_CURRENT_USER\Software\Microsoft\Internet Explorer\Main]
"ShowScriptErrors"=dword:00000001
Pocket Internet Explorer中的JScript不区分大小写
Internet Explorer 4.0及5.0中JScript是区分大小写的。你或许想知道为何同一脚本在Pocket Internet Explorer上能够正确运行,而在台式计算机的Internet Explorer上却导致错误,这很可能是因为脚本在访问对象属性、方法、事件或集合时没有正确区分大小写。在此,作者强烈建议在编写JScript时正确区分大小写,这样做既能确保广泛兼容性,同时也便于进行调试。
无window.open函数
Pocket Internet Explorer不支持多窗口。对window.open的调用将以失败告终并不产生任何响应(如果脚本错误处于关闭状态)。
对标记的限制
Pocket Internet Explorer支持ActiveX控件,并且允许使用相应方法和属性编写脚本。然而,与台式计算机相比,存在如下一些限制:
控件不能以在线方式安装
针对台式计算机的Internet Explorer支持下载并安装ActiveX控件。Pocket PC则不支持这种方式。然而,已存在于Pocket PC上的ActiveX控件可以在页面中的标记内引用。
ActiveX控件不受Fit to Screen(根据屏幕自动调整)选项影响
即便Fit to screen选项已被选中并且ActiveX控件本身已根据屏幕区域进行了调整,控件内容尺寸仍不会相应的进行调整。如果要创建在Pocket Internet Explorer Web页面上使用的ActiveX控件,请确保将客户端显示区域设计在240像素以内。
不支持Java applet
Pocket PC上不存在Java Virtual Machine(Java虚拟机),因此不支持Java applet。
安全性
Pocket Internet Explorer支持所有通用安全方案:
SSL 2.0、SSL 3.0以及Server Gate Cryptography(SGC)。
Pocket Internet Explorer缺省情况下支持40位安全密码。
支持NTLM认证和明文认证方式。
XML支持
Pocket Internet Explorer的最新组件之一是MSXML.DLL,它是一个可在Pocket PC上使用的Internet Explorer 5.0组件。
该组件允许Pocket Internet Explorer在标准XML语法着色视图中显示XML,这种功能已在台式计算机上得到了广泛应用。同时,它还允许使用XSL(扩展样式表语言)以更为友好的方式显示XML数据。
与Microsoft Internet Explorer 5中MSXML的区别
Microsoft XML for Pocket PC与Microsoft Internet Explorer 5中的相应功能几乎完全相同。然而,在Pocket PC上,并未对某些功能提供支持。
未提供对IE4 MSXML DOM的向后兼容性
MSXML for Microsoft Internet Explorer 5包含对Microsoft Internet Explorer 4中XML DOM进行模拟的功能。为降低内存需求和ROM容量,MSXML for Pocket PC不包含此项功能。
不支持数据绑定
Pocket Internet Explorer及MSXML for Pocket PC均不支持Data Binding。对Data Binding的支持需要复杂的HTML布局基础提供支持。
小心CSS属性
请记住,Pocket Internet Explorer不支持CSS。请仔细查看您所创建的XSL转换并确保其中不含CSS元素或属性。尤其要注意在HTML标记中谨慎使用STYLE属性。
XML解析器接口
你还可以针对C++或Visual Basic应用程序使用Microsoft XML Parser。
如何在嵌入式 Viusal C++中使用XMLDOM
为了在eMbedded Visual C++应用程序中访问XMLDOM,可以通过下列语句导入Pocket PC Emulator(Pocket PC模拟器)的MSXMLM.DLL:
#import <\Windows CE Tools\wce300\MS Pocket
PC\emulation\palm300\windows\msxmlm.dll> raw_inte易做图ces_only
using namespace MSXML;
void __stdcall _com_issue_error(HRESULT hr)
{
// Error handling goes here
}
“raw_inte易做图ces_only”属性十分重要,如果没有它,“msxmlm.tlh”
文件将产生大量错误。该属性仅创建在C++应用程序中使用的低级接口描述。为避免连接器错误,使用“com_issue_error()”函数是非常必要的。
此处是一个XML代码的小型示例:
IXMLDOMDocumentPtr iXMLDoc;
IXMLDOMElementPtr iXMLElm;
IXMLDOMNodeListPtr iXMLChild;
IXMLDOMNodePtr iXMLItem;
short tEmpty;
BSTR bStr;
HRESULT hr=iXMLDoc.CreateInstance(__uuidof(DOMDocument));
if (!FAILED(hr))
{
iXMLDoc->loadXML(L"Joe"
L"Smith",
&tEmpty);
iXMLDoc->get_documentElement(&iXMLElm);
iXMLElm->get_childNodes(&iXMLChild);
iXMLChild->get_item(1,&iXMLItem);
iXMLItem->get_xml(&bStr);
MessageBox(NULL,bStr,TEXT("Caption"),MB_OK);
}
如何在嵌入式Visual Basic中使用XMLDOM
在Visual Basic中使用XMLDOM非常简单。下面这个代码片断显示了如何在eMbedded Visual Basic中解析XML:
Dim xmlDoc
Dim currNode
Dim xml
Set xmlDoc = CreateObject("microsoft.xmldom")
xml = "Joe"
xml = xml & "Smith"
xmlDoc.loadXML (xml)
Set currNode = xmlDoc.documentElement.childNodes.item(1)
MsgBox currNode.xml
消息框中将显示如下内容:
Smith
如何在JavaScript中使用XMLDOM
你甚至可以通过客户端JavaScript 1.1访问XMLDOM。以下是使用JScript编写的相同代码:
function showPhone()
{
var root = Contacts.documentElement;
var selectedElems =
root.selectNodes("CONTACT[NAME='Bill Williams']");
var billElem = selectedElems.item(0);
var phone =
billElem.childNodes.item(3).nodeTypedValue;
alert("Bill Williams phone number is " + phone);
}
总结
Pocket Internet Explorer是一款功能强大的Web浏览器,它提供了当今Web浏览器所能提供的几乎全部功能。如果在页面设计过程中花费一些时间针对Pocket Internet Explorer进行优化,将使当前所有客户成为你的Internet受众。
XML在Web上的重要性与日俱增。建立在Pocket Internet Explorer上的XML支持是Pocket Internet Explorer的一大特性。通过与客户端JScript配合使用,你可以创建功能强大的Web应用程序,从而充分利用移动Pocket PC。