学习使用PhoneGap笔记

一、下载图片相关问题

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>

学习使用PhoneGap笔记,布布扣,bubuko.com

时间: 2024-10-11 10:22:57

学习使用PhoneGap笔记的相关文章

《学习bash》笔记--进程处理

1.进程ID和作业编号 当通过附加&号后运行命令时,shell会响应如下: $ ls & [1] 3318 其中[1]是作业号,3318是进程号. 一个后台进程完成时,shell会给出作业编号信息,如下: [1]+  Done                    ls --color=auto 如果作业以非0状态退出时,shell指出其退出状态. 2.作业控制 作业编号可以使它们在shell命令中进行作业控制.一旦作业在后台运行,你可以让它一直运行,或把它放到前台,或向其发送信号. 2.

hadoop2.5.2学习及实践笔记(四)—— namenode启动过程源码概览

对namenode启动时的相关操作及相关类有一个大体了解,后续深入研究时,再对本文进行补充 >实现类 HDFS启动脚本为$HADOOP_HOME/sbin/start-dfs.sh,查看start-dfs.sh可以看出,namenode是通过bin/hdfs命令来启动 $ vi start-dfs.sh # namenodes NAMENODES=$($HADOOP_PREFIX/bin/hdfs getconf -namenodes) echo "Starting namenodes o

《学习opencv》笔记——矩阵和图像操作——cvGEMM,cvGetCol,cvGetCols and cvGetDiag

矩阵和图像的操作 (1)cvGEMM函数 其结构 double cvGEMM(//矩阵的广义乘法运算 const CvArr* src1,//乘数矩阵 const CvArr* src2,//乘数矩阵 double alpha,//1号矩阵系数 const CvArr* src3,//加权矩阵 double beta,//2号矩阵系数 CvArr* dst,//结果矩阵 int tABC = 0//变换标记 ); tABC变换标记及其对应的含义 CV_GEMM_A_T 转置 src1 CV_GE

Python学习的个人笔记(基础语法)

Python学习的个人笔记 题外话: 我是一个大二的计算机系的学生,这份python学习个人笔记是趁寒假这一周在慕课网,w3cschool,还有借鉴了一些博客,资料整理出来的,用于自己方便的时候查阅,一开始保存在word上,代码不是很好看,于是决定复制到博客里面,可能有复制过程中出错的,或者我本身在理解方面有出错的地方,希望能得到指正,谢谢  后续的内容我会继续学习…… python下载地址  www.python.org Python 分为2.7和3.3两个版本,3.3有些库不兼容,因此用2.

深度学习论文阅读笔记--Deep Learning Face Representation from Predicting 10,000 Classes

来自:CVPR 2014   作者:Yi Sun ,Xiaogang Wang,Xiaoao Tang 题目:Deep Learning Face Representation from Predicting 10,000 Classes 主要内容:通过深度学习来进行图像高级特征表示(DeepID),进而进行人脸的分类. 优点:在人脸验证上面做,可以很好的扩展到其他的应用,并且夸数据库有效性:在数据库中的类别越多时,其泛化能力越强,特征比较少,不像其他特征好几K甚至上M,好的泛化能力+不过拟合于

python学习Pilow图形笔记1

英文教程 学习笔记 代码来自这问仁兄,向你学习写的笔记网页 1.准备工作 先从我说的这个代码里点击进入,会转到github中,点击clone or download收入自己的文件夹来研究,我先看看里面有什么 还有一个lena.ppm 我把它已经移到我写练习代码的文件夹里了 这个lena.ppm {PPM图像格式(PortablePixelmap)一种linux图片格式}这是接下来代码要用到的素材 前一个教程,我已近分享了如何使用pip下载第三方库 现在我们再次使用它 进入命令行输入 pip in

《学习bash》笔记--调试shell程序

在shell中,最简单的调试助手时输出语句echo,可以通过把许多echo语句放到代码中进行调试,但必须花费足够的时间以定位 要查看的信息.可能必须通过许多的输出才能发现要查找的信息. 1.set选项 最基本的时set -o命令选项,当运行脚本时,这些选项可以用在命令行上,如下表所示: set -o选项      命令行选项      行为 noexec            -n                     不运行命令,值检查语法错误 verbose           -v  

《学习bash》笔记--命令行处理

shell从标准输入或脚本中读取的每行称为一个管道行,它包含一或多个由0个或多个管道符分割的命令,对其读取的每个管道 行,执行下面的操作. 1.将命令分成由固定元字符集分隔的记号:SPACE.TAB.NEWLINE.;.(.).<.>.|和&.记号类型 包括单词.关键字.I/O重定向符和分号. 2.检测每个命令的第一个记号,查看为不带引号或反斜线的关键字.如果是一个开放的关键字,如if和 其他控制结构起始字符串.function.{或(,则命令实际上为一复合命令.shell在内部对复合

《学习bash》笔记--基础shell编程

1.shell脚本和函数 脚本是包含shell命令的文件,它是一个shell程序,有三种方式运行它们: 一是键入source scriptname,使得脚本的命令被读取并运行,就好像键入它们一样. 二是运行bash scriptname,打开一个子shell来读取并执行脚本文件中命令.该脚本文件可以无"执行权限". 三是使用./scriptname,打开一个子shell读取并执行脚本文件中的命令,该脚本需要"执行权限". 1.1.函数 函数是一种脚本内脚本,你使用它