我有這個posted on PhoneGap google groups但我認爲在這裏發佈會幫助我以某種方式,有點迫切需要在今天或明天完成此操作。在iOS上保存聯繫人時發生Phonegap ContactError 6
無論如何,PhoneGap的Contact API最近讓我頭痛。長話短說:
環境
- 的iOS 6
- 的PhoneGap 2.0.0
我有這樣的應用程序,它可以掃描與電子名片QR碼包埋,它會保存一旦用戶同意將其保存下來,它就進入用戶的聯繫人。在Android 4.1.2
,這段代碼完美無缺地工作,並保存聯繫人。然而,在iOS 6
,我不能得到它的工作。我總是收到的是error #4
,這是,ContactError.IO_ERROR
。
的代碼如下:
navigator.notification.confirm('Found a contact: "'+(vcard['N'] || '')+'". Add it into your contact list?', function(btn) {
if (btn == 1) {
var contact = navigator.contacts.create();
contact.displayName = vcard['N'] || '';
contact.emails = [new ContactField('email', vcard['EMAIL'] || '')];
var org = new ContactOrganization();
org.name = vcard['ORG'] || '';
contact.organizations = [org];
contact.save(function() {
navigator.notification.alert('Contact Saved');
}, function(err) {
navigator.notification.alert('Error on saving contact: '+err.code);
});
}
}, 'QR Code Scanner', 'OK,Cancel');
而下面是我看到的了XCode 我就「OK」點擊右側後唯一的日誌:(第一回調是爲notification.confirm
)
2012-10-22 21:19:24.619 [11897:907] PluginResult:toJSONString - {"status":1,"message":1,"keepCallback":false}
2012-10-22 21:19:24.621 [11897:907] PluginResult toSuccessCallbackString: cordova.callbackSuccess('Notification12',{"status":1,"message":1,"keepCallback":false});
2012-10-22 21:19:24.738 [11897:907] PluginResult:toJSONString - {"status":9,"message":4,"keepCallback":false}
2012-10-22 21:19:24.739 [11897:907] PluginResult toErrorCallbackString: cordova.callbackError('Contacts13',{"status":9,"message":4,"keepCallback":false});
然後,我會看到警告:
Error on saving contact: 4
注
- vCard是一個鍵 - 值對電子名片的obj的。現在請忽略此。這並不重要。
- 這段代碼在Android上正常工作。
這是創建聯繫人的正確方法嗎?如何使用PhoneGap在iOS 6上保存聯繫人?
歡迎任何幫助!我在這裏需要一些輕;)
編輯
像花一個小時做所有必要的遷移和升級到V2.1.0,但錯誤代碼仍然出現。爲什麼?!
編輯編輯
我是又結束這場賞金2小時的路程我不能獲獎,因爲它不是最終的答案?
顯然這與Mark 6提及的iOS 6上的新地址簿權限請求有關,但沒有人回答我如何正確執行此操作。在研究中花費了一些時間後,我得出結論:如果我們能夠等待Phonegap完成第2版,那麼最好。2,因爲我看到在CDVContacts.m in v2.2 rc2 commit 61857860...
謝謝。這個項目已經關閉了一段時間。最後我沒有解決這個問題(如果我沒有錯的話)。我們在那個時候忽略了iOS6,因爲iOS6剛剛問世,我們沒有多少時間來處理這個問題。 –