一、下载图片相关问题
1.保存到SD卡的时候,如何创建目录?
只能一级一级目录的创建!!!!!(目前我的是这样)
<span style="white-space:pre"> </span>fileSystem.root.getDirectory("catchFile", {create:true,exclusive:false},function(){}, function(){alert('创建目录失败'); console.log("创建目录失败");});
如果要创建多级目录,则如下所示:
<span style="white-space:pre"> </span>fileSystem.root.getDirectory("catchFile", {create:true,exclusive:false},function(){}, function(){alert('创建目录失败'); console.log("创建目录失败");}); <span style="white-space:pre"> </span><span style="font-family: Arial, Helvetica, sans-serif;">fileSystem.root.getDirectory("catchFile/2014", {create:true,exclusive:false},function(){}, function(){alert('创建目录失败'); console.log("创建目录失败");});</span>
2.保存到SD卡后,在手机上使用怎样的路径显示图片?
demo中会有如下代码:
<pre name="code" class="javascript">function(entry){ var smallImage = document.getElementById(id); smallImage.style.display = 'block'; smallImage.src = entry.fullPath; }<pre name="code" class="javascript"></pre>
所以需要返回保存到缓存的路径就是 entry.fullPath
3.下载图片的时候,是同步还是异步呢?
下载图片的时候,phonegap是异步下载,因此在设置图片src的时候,一定要先把img加入到页面的某一个控件之后再下载。
4.一个页面上有服务器的同一张图片怎么办?
在 function localFile(sourceUrl,imgName) {} 这个方法参数中,第一个参数表示服务器的图片地址,而后面这个参数是本地显示图片的 id,因此把第二个参数设置成不为本地重复即可。
注:从sourceUrl 中只获取文件名的方法:sourceUrl.substring(sourceUrl.lastIndexOf(‘/‘)+1)
二、phonegap 获取手机信息 和 通过百度地图js API 逆解析地址
以下的demo能充分证明
<!DOCTYPE html> <html> <head> <title>获取手机信息-定位得到的具体地址名称</title> <meta http-equiv="Content-Type" content="text/html; charset=utf-8"> <script type="text/javascript" charset="utf-8" src="./js/frame/jquery-1.8.2.min.js"></script> <script type="text/javascript" charset="utf-8" src="./js/frame/cordova-2.6.0.js"></script> <script type="text/javascript" charset="utf-8"> // 等待加载PhoneGap document.addEventListener("deviceready", onDeviceReady, false); // PhoneGap加载完毕 function onDeviceReady() { var element = document.getElementById('deviceProperties'); //获取 手机类型与系统版本 name:meizu_mx3 mione_plus //var modelVersion=device.name+","+device.platform+","+device.version; //var areas= element.innerHTML = 'Device Name: ' + device.name + '<br />' + 'Device PhoneGap: ' + device.phonegap + '<br />' + 'Device Platform: ' + device.platform + '<br />' + 'Device UUID: ' + device.uuid + '<br />' + 'Device Version: ' + device.version + '<br />'; navigator.geolocation.getCurrentPosition(onSuccess, onError); } function onSuccess(position) { var element = document.getElementById('geolocation'); element.innerHTML = 'Latitude: ' + position.coords.latitude + '<br />' + 'Longitude: ' + position.coords.longitude + '<br />' + 'Altitude: ' + position.coords.altitude + '<br />' + 'Accuracy: ' + position.coords.accuracy + '<br />' + 'Altitude Accuracy: ' + position.coords.altitudeAccuracy + '<br />' + 'Heading: ' + position.coords.heading + '<br />' + 'Speed: ' + position.coords.speed + '<br />' + 'Timestamp: ' + position.timestamp + '<br />'; getAddress(position.coords.latitude+","+position.coords.longitude); document.getElementById('coords_a').innerHTML= "http://maps.google.com/maps/api/geocode/json?latlng="+position.coords.longitude+","+position.coords.latitude+"&language=zh-CN&sensor=true"; //http://maps.google.com/maps/api/geocode/json?latlng=position.coords.longitude,position.coords.latitude&language=zh-CN&sensor=true } function onError(error) { alert('code: ' + error.code + '\n' + 'message: ' + error.message + '\n'); } //根据经纬度获取地址名称 function getAddress(location){ alert(location); $.ajax({ type:'get', url:'http://api.map.baidu.com/geocoder/v2/?ak=G1RbGxzkHMimFHc4SDy9GfK1&location='+location+'&output=json', dataType:'jsonp', async: false, error:function(){ alert("系统内部异常!"); }, success:function(json){ alert(json.result.addressComponent.city); $("#citys").html(json.result.addressComponent.city); } }); } </script> </head> <body> <ul> <li>只能在手机上看到结果</li> </ul> <p id="deviceProperties">Loading device properties...</p> <p id="geolocation">Finding geolocation...</p> <p id="coords_a">加载中...</p> <p id="citys">城市加载中...</p> </body> </html>
时间: 2024-10-11 10:22:57