预览加载中,请您耐心等待几秒...
1/10
2/10
3/10
4/10
5/10
6/10
7/10
8/10
9/10
10/10

亲,该文档总共27页,到这已经超出免费预览范围,如果喜欢就直接下载吧~

如果您无法下载资料,请参考说明:

1、部分资料下载需要金币,请确保您的账户上有足够的金币

2、已购买过的文档,再次下载不重复扣费

3、资料包下载后请先用软件解压,在使用对应软件打开

用PHP和XML进行iPhone开发教程AppleiPhone是市场上最热门的新设备。通过本文学习如何使用现有的Web工具为它开发应用程序。 我为自己感到骄傲:我在购买iPhone之前,抵制它的诱惑长达四天。当然,我原来的手机已经非常旧了,这也是买iPhone的原因之一。但是iPhone确实很酷,尤其是它内置Wi-Fi,更重要的是,它有一个出色的浏览器。iPhone的软件开发包(SDK)是标准的DynamicHTML(DHTML),通过Web浏览器使用。所以,可以使用所有熟悉的HTML、CascadingStyleSheet(CSS)和AsynchronousJavaScript™+XML(Ajax)等前端技术,还可以结合使用多种后端技术:PHP、Rails、Java™技术等等。我玩了iPhone一阵子,使用了所有日常操作,比如电话功能,GoogleMaps,用iPod功能听音乐,现在就该为手机开发一些特别的东西了。问题是,要开发什么呢。 我的旧手机缺少的一项功能是SallingClicker应用程序。SallingClicker将任何手机转换为遥控器,可以控制Macintosh和运行Microsoft®Windows®的计算机。通过使用手机上的clicker应用程序,可以在我的Macintosh计算机上启动AppleScripts,执行各种有意义的操作,比如控制AppleiTunes或KeyNote(Apple机器上与MicrosoftOfficePowerPoint®相似的程序)。在智能手机上,这个功能需要将一个小应用程序下载到手机上。但是,iPhone不允许下载特殊的应用程序,因为AppleSafari(Web浏览器)是SDK。那么,怎么使用Safari控制我Mac呢?我发现的解决方案是在MacOSX机器上使用PHP,并结合使用JoeHewitt的iUI工具包。这个工具包在Web页面中构建iPhone风格的界面。它还处理界面的体验。例如,如果浏览一个条目列表,那么iUI会从一边扫到另一边,就像iPhone对联系人列表的处理方式一样。在构建这个应用程序时,首先定义一些命令,这些是iPhone遥控器显示的选项。使用一个XML文件定义这些命令。清单1给出这个文件。<commands> <commandtitle="NextSong"> tellapplication"iTunes"tonexttrack </command> <commandtitle="PreviousSong"> tellapplication"iTunes"tobacktrack </command> </commands>这个文件包含一系列<command>标记。每个标记有一个title属性,这个属性为命令定义一个可读的标题。<command>标记的内容是请求这个命令时执行的AppleScript代码。因为采用XML编码,所以如果AppleScript代码中有尖括号(<或>)或者与字符(&),那么必须将它们分别编码为<、>和&。 为了包装这个XML文件,我编写了一个PHPV5Command类,它读取这个文件、返回命令名并使用MacOSXosascript命令运行这些命令。这个类的代码见清单2。<?php classCommands { private$_commands; function__construct() { $this->_commands=array(); $doc=newDOMDocument(); $doc->load('commands.xml'); $cmds=$doc->getElementsByTagName('command');foreach($cmdsas$cmd) { $this->_commands[]=array( 'title'=>$cmd->getAttribute('title'), 'command'=>$cmd->firstChild->nodeValue ); } } functiongetCommands() { $cmds=array();foreach($this->_commandsas$cmd) { $cmds[]=$cmd['title']; } return$cmds; } functionrunCommand($id) { $ph=popen("osascript","w"); fwrite($ph,$this->_commands[$id]['command']); fclose($ph); } } ?>这个类首先装载commands.xml文件。它使用DomDocumentPHP类读取这个文件。然后,它使用getElementsByTagName寻找所有命令参数。在获得<co