1. 程式人生 > >cordova_iFrame中呼叫拍照功能無法獲取返回值

cordova_iFrame中呼叫拍照功能無法獲取返回值

  • 問題描述
    今天寫了一個測試程式,在index.html中嵌入一個iFrame,並在iFrame中載入一個sub.html子頁面,然後在sub.html中呼叫cordova的拍照方法,拍照方法能呼叫成功,但是無法獲取到拍照回撥的值。
  • 除錯過程
    一開始以為是cordova原始碼中處理url的問題,後來發現應該是IFrame父子視窗傳值問題。
  • 解決方案
    1、在父頁面封裝一個呼叫cordova拍照API的函式。
function takePhoto(callback) {
	// 這裡呼叫拍照方法,拍完照。獲取到照片路徑imagePath,然後通過回撥callback傳出去
callback(imagePath); }

2、在iFrame中的子頁面呼叫父頁面拍照方法

window.parent.takePhoto(function(imagePath) {
	img.src = imagePath; // 在dom上顯示圖片
});