Phonegap 无法在 iPad 视网膜 mini iOS7 中使用相机
Posted
技术标签:
【中文标题】Phonegap 无法在 iPad 视网膜 mini iOS7 中使用相机【英文标题】:Phonegap can't use camera in iPad retina mini iOS7 【发布时间】:2014-05-12 10:32:58 【问题描述】:我在 iPad 上构建了一个应用程序。它在 2 个 iPad 2(ios 6.1 和 iOS 7.1)中运行良好 但是,后来我在iPadretina mini iOS 7(型号:ME820ZP/A)上测试,选择拍照或者拍照时崩溃了。
这里是我的电话间隔代码:`
var pictureSource; // picture source
var destinationType; // sets the format of returned value
// Wait for device API libraries to load
//
document.addEventListener("deviceready",onDeviceReady,false);
// device APIs are available
//
function onDeviceReady()
// init for photo
pictureSource = navigator.camera.PictureSourceType;
destinationType = navigator.camera.DestinationType;
// Called when a photo is successfully retrieved
function onPhotoURISuccess(imageURI)
// Get image handle
var imgAvatar = document.getElementById('avatar');
// Unhide image elements
imgAvatar.style.display = 'block';
// add into img element
imgAvatar.src = imageURI;
// local storage
window.localStorage.setItem('User_Avatar',imageURI);
// A button will call this function
function capturePhotoEdit()
// Take picture using device camera, allow edit, and retrieve image as base64-encoded string
navigator.camera.getPicture(onPhotoURISuccess, onFail, quality: 50, allowEdit: true,
destinationType: destinationType.FILE_URI );
// A button will call this function
function getPhoto(source)
// Retrieve image file location from specified source
navigator.camera.getPicture(onPhotoURISuccess, onFail, quality: 50,
destinationType: destinationType.FILE_URI,
sourceType: source );
// Called if something bad happens.
function onFail(message)
showAlert("Có lỗi: " + message);
// alert dialog dismissed
function alertDismissed()
// do something
// Show a custom alert
//
function showAlert(message)
navigator.notification.alert(
message, // message
alertDismissed, // callback
'Thông báo', // title
'OK' // buttonName
);
` 当然,插件 org.apache.cordova.camera 已经添加了。
这是调试屏幕:http://thienhaxanh.info/debug-screen.png(抱歉,我无法发布图片 :))
谢谢。
【问题讨论】:
尝试降低相机质量 你好@kathir,我试过了,但没有成功。谢谢。 【参考方案1】:尝试内联函数....我认为它似乎大部分时间都在工作...
function takeasnap()
try
navigator.camera.getPicture(
function (uri)
alert(uri);
,
function (e)
console.log("Error getting picture: " + e);
,
quality: 50
);
catch (err)
alert(err);
【讨论】:
我在导航器之前发出警报....,它的工作。但是,当调用 navigator.camera.getPicture 时,它不起作用。我不知道为什么 js 不捕获错误。你还有什么想法吗? 你可以看看“Project/platforms/ios/Project/www/config.xml”下的config.xml,看看是否有以下代码...以上是关于Phonegap 无法在 iPad 视网膜 mini iOS7 中使用相机的主要内容,如果未能解决你的问题,请参考以下文章
iPad 视网膜模拟器中的 CATiledLayer 性能不佳
Sencha Touch 2 + PhoneGap + iPad:带有base64编码数据的视频:“操作无法完成”