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,看看是否有以下代码... PluginsCDVCamera 在“...”行之后添加到你的配置中。 它仍然无法正常工作:(我认为问题只是我的设备。当我分发应用程序时我会询问Apple支持团队。这个错误太累了:((( 酷@GBMtoàn...他们会帮助你...不要忘记在这里评论解决方案...:)

以上是关于Phonegap 无法在 iPad 视网膜 mini iOS7 中使用相机的主要内容,如果未能解决你的问题,请参考以下文章

HTML5 视频海报图像无法在 iPad 视网膜上全屏缩放

iPad 视网膜模拟器中的 CATiledLayer 性能不佳

图像无法在 ipad/ipod 上加载

Sencha Touch 2 + PhoneGap + iPad:带有base64编码数据的视频:“操作无法完成”

如何让 WebView 在 iPhone/iPad Retina 中工作

带有 Tableview 图形的 iPad 2 模拟器上的问题仅影响非视网膜显示