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

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

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

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

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

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

Android教程之用HTML5构建web应用程序(二)#iPhone3.1.3SimulatorYourbrowser'suser-agent:Mozilla/5.0(iPhoneSimulator;U;CPUiPhoneOS3.1.3likeMacOSX;en-us)AppleWebKit/528.18(KHTML,likeGecko)Version/4.0Mobile/7E18Safari/528.16WebWorkers?falseDatabase?trueVideo?trueCanplayH.264?maybeCanplayOGG?noGeolocation?trueLatitude:37.331689Longitude:-122.030731#Android1.6EmulatorYourbrowser'suser-agent:Mozilla/5.0(Linux;Android1.6;en-us;sdkBuild/Donut)AppleWebKit/528.5+(KHTML,likeGecko)Version/3.1.2MobileSafari/525.20.1WebWorkers?falseDatabase?falseVideo?falseGeolocation?false#Android2.1EmulatorYourbrowser'suser-agent:Mozilla/5.0(Linux;U;Android2.1;en-us;sdkBuild/ERD79)AppleWebKit/530.17(KHTML,likeGecko)Version/4.0MobileSafari/530.17WebWorkers?trueDatabase?trueVideo?trueCanplayH.264?noCanplayOGG?noGeolocation?trueLatitude:Longitude:上述代码中显示了最新的iPhone模拟器之一以及两种Android。Android1.6不支持我们上述的这些检测。但实际上只要使用GoogleGear它就能支持除视频之外的所有这些特性。它们就相当于是API(就功能而言),但它们并不符合Web标准,因此会得到清单4中所显示的结果。将它与Android2.1做个对照,后者支持所有这些特性。请注意,iPhone惟一不支持Webworker。清单3显示出Safari的桌面版本支持Webworker,因此有理由相信这个特性不久也将会出现在iPhone中。知道了该如何检测用户浏览器的这些特性之后,现在,让我们来探究一个简单的应用程序,这个应用程序将会综合使用这些特性—这取决于用户浏览器能处理什么。我们要构建的这个应用程序的功能是使用FoursquareAPI搜索某用户所在地周边的热点场所。这个例子的重点是如何在移动设备上使用地理定位,但请记住Firefox3.5+也支持地理定位。这个应用程序首先查找用户当前位置附近的称为场所的Foursquare。场所可以是任何东西,但通常是指饭馆、酒吧、商店等。作为一个Web应用程序,我们的示例也受限于目前所有浏览器均执行的同源策略。它不能直接调用Foursquare的API。而是使用一个Javaservlet来实际代理这些调用。之所以采用Java并没有任何特别之处;您也可以用PHP、Python、Ruby等轻松编写一个类似的代理。清单5显示了一个代理servlet。publicclassFutureWebServletextendsHttpServlet{protectedvoiddoGet(HttpServletRequestrequest,HttpServletResponseresponse)throwsServletException,IOException{Stringoperation=request.getParameter("operation");if(operation!=null&&operation.equalsIgnoreCase("getDetails")){getDetails(request,response);}StringgeoLat=request.getParameter("geoLat");StringgeoLong=request.getParameter("geoLong");StringbaseUrl="http://api.foursquare.com/v1/venues.json?";StringurlStr=baseUrl+"geolat="+geoLat+"&geolong="+geoLong;PrintWriterout=response.getWriter();proxyRequest(urlStr