【发布时间】:2017-01-25 15:21:03
【问题描述】:
我正在关注本教程:https://software.intel.com/en-us/xdk/articles/cordova-core-plugin-camera-short-code-example
它在运行 iOS 10 和 Cordova 6.5.0 的 iPhone 5s 上运行良好
但是,我不明白设备准备就绪时调用的函数中何时以及必须放置什么背后的逻辑。
如您所见,onDeviceReady 在设备准备就绪时被调用:
document.addEventListener("deviceready",onDeviceReady,false);
// device APIs are available
//
function onDeviceReady() {
pictureSource=navigator.camera.PictureSourceType;
destinationType=navigator.camera.DestinationType;
}
但其他 API 调用(例如拍摄实际照片)不需要该步骤(一个可以在调用它的按钮可见时立即调用的函数):
// A button will call this function
//
function capturePhoto() {
// Take picture using device camera and retrieve image as base64-encoded string
navigator.camera.getPicture(onPhotoDataSuccess, onFail, { quality: 50,
destinationType: destinationType.DATA_URL });
}
将 onDeviceReady 函数的内容放在 capturePhoto 函数中并在页面加载完成后等待几秒钟会破坏整个过程 - 为什么?
另外,为什么navigator.camera.DestinationType和官方教程要你使用Camera.DestinationType不一样?
到目前为止我从回复中学到了什么
如有错误请指正
当 DOM 加载后立即调用 javascript cordova 函数时,可能会发生本机 cordova 代码尚未准备好的情况。但是通过将该代码放在 onDocumentReady 函数中,您可以绕过它。
【问题讨论】:
标签: javascript cordova