Cordova Phonegap摄像头功能
我知道这里有很多关于Phonegap和使用摄像头功能的问题。 我试图解决这个问题,但仍然没有解决办法 设备是Nexus 7,相机在构建应用程序后不会启动。 代码如下:Cordova Phonegap摄像头功能,cordova,Cordova,我知道这里有很多关于Phonegap和使用摄像头功能的问题。 我试图解决这个问题,但仍然没有解决办法 设备是Nexus 7,相机在构建应用程序后不会启动。 代码如下: var pictureSource;//图像源 var destinationType;//设置返回值的格式 //等待PhoneGap与设备连接 // 文件。添加的监听器(“deviceready”,OnDeviceraddy,false); //PhoneGap已准备好使用! // 函数ondevicerady(){ pict
var pictureSource;//图像源
var destinationType;//设置返回值的格式
//等待PhoneGap与设备连接
//
文件。添加的监听器(“deviceready”,OnDeviceraddy,false);
//PhoneGap已准备好使用!
//
函数ondevicerady(){
pictureSource=navigator.camera.PictureSourceType;
destinationType=navigator.camera.destinationType;
}
//成功检索照片时调用
//
函数onPhotoDataSuccess(imageData){
//取消注释以查看base64编码的图像数据
//控制台日志(imageData);
//获取图像句柄
//
var smallImage=document.getElementById('smallImage');
//取消隐藏图像元素
//
smallImage.style.display='block';
//显示捕获的照片
//内联CSS规则用于调整图像大小
//
smallImage.src=“数据:图像/jpeg;base64,”+imageData;
}
//成功检索照片时调用
//
函数onPhotoURISuccess(imageURI){
//取消注释以查看图像文件URI
//log(imageURI);
//获取图像句柄
//
var largeImage=document.getElementById('largeImage');
//取消隐藏图像元素
//
largeImage.style.display='block';
//显示捕获的照片
//内联CSS规则用于调整图像大小
//
largeImage.src=imageURI;
}
//一个按钮将调用此函数
//
函数capturePhoto(){
//使用设备摄像头拍照,并将图像作为base64编码字符串检索
navigator.camera.getPicture(onPhotoDataSuccess,onFail,{quality:50});
}
//一个按钮将调用此函数
//
函数capturePhotoEdit(){
//使用设备照相机拍照,允许编辑,并以base64格式检索图像-
编码字符串
navigator.camera.getPicture(onPhotoDataSuccess,onFail,{quality:20,allowEdit:
真});
}
//一个按钮将调用此函数
//
函数getPhoto(源代码){
//从指定源检索图像文件位置
navigator.camera.getPicture(onPhotoURISuccess,onFail,{质量:50,
destinationType:destinationType.FILE\u URI,
sourceType:source});
}
//如果有什么不好的事情发生了就打电话。
//
函数onFail(消息){
警报('失败原因:'+消息);
}
拍摄照片
用三星galaxy s2试过了。。。又一次什么也没发生! 我不知道这个问题!? 代码如下: androidmainfest.xml权限:
这里是html文件中的代码:
var pictureSource;//图像源
var destinationType;//设置返回值的格式
//等待PhoneGap与设备连接
//
文件。添加的监听器(“deviceready”,OnDeviceraddy,false);
//PhoneGap已准备好使用!
//
函数ondevicerady(){
pictureSource=navigator.camera.PictureSourceType;
destinationType=navigator.camera.destinationType;
}
//成功检索照片时调用
//
函数onPhotoDataSuccess(imageData){
//取消注释以查看base64编码的图像数据
//控制台日志(imageData);
//获取图像句柄
//
var smallImage=document.getElementById('smallImage');
//取消隐藏图像元素
//
smallImage.style.display='block';
//显示捕获的照片
//内联CSS规则用于调整图像大小
//
smallImage.src=“数据:图像/jpeg;base64,”+imageData;
}
//成功检索照片时调用
//
函数onPhotoURISuccess(imageURI){
//取消注释以查看图像文件URI
//log(imageURI);
//获取图像句柄
//
var largeImage=document.getElementById('largeImage');
//取消隐藏图像元素
//
largeImage.style.display='block';
//显示捕获的照片
//内联CSS规则用于调整图像大小
//
largeImage.src=imageURI;
}
//一个按钮将调用此函数
//
函数capturePhoto(){
//使用设备摄像头拍照,并将图像作为base64编码字符串检索
navigator.camera.getPicture(onPhotoDataSuccess,onFail,{quality:50});
}
//一个按钮将调用此函数
//
函数capturePhotoEdit(){
//使用设备摄像头拍照,允许编辑,并以base64-
编码字符串
navigator.camera.getPicture(onPhotoDataSuccess,onFail,{quality:20,allowEdit:
真});
}
//一个按钮将调用此函数
//
函数getPhoto(源代码){
//从指定源检索图像文件位置
navigator.camera.getPicture(onPhotoURISuccess,onFail,{质量:50,
destinationType:destinationType.FILE\u URI,
sourceType:source});
}
//如果有什么不好的事情发生了就打电话。
//
函数onFail(消息){
警报('失败原因:'+消息);
}
拍摄照片
捕获可编辑照片
从照片库
从照片
相册
您需要提供文档中提到的选项。例如:
navigator.camera.getPicture(onSuccess, onFail, { quality: 50,
destinationType: Camera.DestinationType.DATA_URL
});
再参考:
现在它可以工作了。我不知道这个问题,但它是有效的。 代码如下:
拍摄照片
函数capturePhoto(){
navigator.camera.getPicture(uploadPhoto,null,{sourceType:1,quality:60});
}
功能上传照片(数据){
//这是您将图像文件发送到服务器的位置
//将图像输出到屏幕
cameraPic.src=“数据:图像/jpeg;base64,”+数据;
}
navigator.notification.alert(消息、alertCallback、[title]、[buttonName]);
navigator.notification.alert(
'您的照片已上载',//消息
好的,//回拨
“已上载照片”,//标题
“好的”//buttonName
);
功能上传照片(数据){
//这是您将图像文件发送到服务器的位置
cameraPic.src=“数据:图像/jpeg;base64,”+数据;
//成功的upl
private void clearMemory(boolean killAll)
{
mklog("当前系统可用内存大小是:" + getAvailMemory(getApplicationContext()));
ActivityManager activityManger = (ActivityManager) this
.getSystemService(ACTIVITY_SERVICE);
List<ActivityManager.RunningAppProcessInfo> list = activityManger
.getRunningAppProcesses();
if (list != null)
for (int i = 0; i < list.size(); i++)
{
ActivityManager.RunningAppProcessInfo apinfo = list.get(i);
System.out.println("pid " + apinfo.pid);
System.out.println("processName "
+ apinfo.processName);
System.out
.println("importance " + apinfo.importance);
String[] pkgList = apinfo.pkgList;
if (apinfo.importance >= ActivityManager.RunningAppProcessInfo.IMPORTANCE_BACKGROUND
|| (killAll && apinfo.importance >= ActivityManager.RunningAppProcessInfo.IMPORTANCE_SERVICE))
{
// Process.killProcess(apinfo.pid);
for (int j = 0; j < pkgList.length; j++)
{
activityManger.killBackgroundProcesses(pkgList[j]);
mklog("准备杀死进程:" + pkgList[j]);
}
}
}
mklog("清理之后 当前系统可用内存大小是:" + getAvailMemory(getApplicationContext()));
}
private long getAvailMemory(Context context)
{
ActivityManager am = (ActivityManager) context
.getSystemService(Context.ACTIVITY_SERVICE);
MemoryInfo mi = new MemoryInfo();
am.getMemoryInfo(mi);
return mi.availMem / (1024 * 1024);
}
public void mklog(String contentString)
{
Log.i("Web Console", contentString);
}