Mon 21 Jul 22:43:21 CEST 2025
This commit is contained in:
		
							parent
							
								
									04db300110
								
							
						
					
					
						commit
						8fedf43478
					
				
							
								
								
									
										121
									
								
								js/ui/cordova/plugins/cordova-plugin-contacts/src/windows8/ContactProxy.js
									
									
									
									
										vendored
									
									
										Normal file
									
								
							
							
						
						
									
										121
									
								
								js/ui/cordova/plugins/cordova-plugin-contacts/src/windows8/ContactProxy.js
									
									
									
									
										vendored
									
									
										Normal file
									
								
							|  | @ -0,0 +1,121 @@ | ||||||
|  | /* | ||||||
|  |  * | ||||||
|  |  * Licensed to the Apache Software Foundation (ASF) under one | ||||||
|  |  * or more contributor license agreements.  See the NOTICE file | ||||||
|  |  * distributed with this work for additional information | ||||||
|  |  * regarding copyright ownership.  The ASF licenses this file | ||||||
|  |  * to you under the Apache License, Version 2.0 (the | ||||||
|  |  * "License"); you may not use this file except in compliance | ||||||
|  |  * with the License.  You may obtain a copy of the License at | ||||||
|  |  * | ||||||
|  |  *   http://www.apache.org/licenses/LICENSE-2.0
 | ||||||
|  |  * | ||||||
|  |  * Unless required by applicable law or agreed to in writing, | ||||||
|  |  * software distributed under the License is distributed on an | ||||||
|  |  * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY | ||||||
|  |  * KIND, either express or implied.  See the License for the | ||||||
|  |  * specific language governing permissions and limitations | ||||||
|  |  * under the License. | ||||||
|  |  *  | ||||||
|  |  */ | ||||||
|  | 
 | ||||||
|  | var ContactField = require('./ContactField'), | ||||||
|  |     ContactAddress = require('./ContactAddress'), | ||||||
|  |     ContactName = require('./ContactName'), | ||||||
|  |     Contact = require('./Contact'); | ||||||
|  | 
 | ||||||
|  | 
 | ||||||
|  | function convertToContact(windowsContact) { | ||||||
|  |     var contact = new Contact(); | ||||||
|  | 
 | ||||||
|  |     // displayName & nickname
 | ||||||
|  |     contact.displayName = windowsContact.name; | ||||||
|  |     contact.nickname = windowsContact.name; | ||||||
|  | 
 | ||||||
|  |     // name
 | ||||||
|  |     contact.name = new ContactName(windowsContact.name); | ||||||
|  | 
 | ||||||
|  |     // phoneNumbers
 | ||||||
|  |     contact.phoneNumbers = []; | ||||||
|  |     for (var i = 0; i < windowsContact.phoneNumbers.size; i++) { | ||||||
|  |         var phone = new ContactField(windowsContact.phoneNumbers[i].category, windowsContact.phoneNumbers[i].value); | ||||||
|  |         contact.phoneNumbers.push(phone); | ||||||
|  |     } | ||||||
|  | 
 | ||||||
|  |     // emails
 | ||||||
|  |     contact.emails = []; | ||||||
|  |     for (var i = 0; i < windowsContact.emails.size; i++) { | ||||||
|  |         var email = new ContactField(windowsContact.emails[i].category, windowsContact.emails[i].value); | ||||||
|  |         contact.emails.push(email); | ||||||
|  |     } | ||||||
|  | 
 | ||||||
|  |     // addressres
 | ||||||
|  |     contact.addresses = []; | ||||||
|  |     for (var i = 0; i < windowsContact.locations.size; i++) { | ||||||
|  |         var address = new ContactAddress(null, windowsContact.locations[i].category, | ||||||
|  |             windowsContact.locations[i].unstructuredAddress, windowsContact.locations[i].street, | ||||||
|  |             null, windowsContact.locations[i].region, windowsContact.locations[i].postalCode, | ||||||
|  |             windowsContact.locations[i].country); | ||||||
|  |         contact.addresses.push(address); | ||||||
|  |     } | ||||||
|  | 
 | ||||||
|  |     // ims
 | ||||||
|  |     contact.ims = []; | ||||||
|  |     for (var i = 0; i < windowsContact.instantMessages.size; i++) { | ||||||
|  |         var im = new ContactField(windowsContact.instantMessages[i].category, windowsContact.instantMessages[i].userName); | ||||||
|  |         contact.ims.push(im); | ||||||
|  |     } | ||||||
|  | 
 | ||||||
|  |     return contact; | ||||||
|  | }; | ||||||
|  | 
 | ||||||
|  | module.exports = { | ||||||
|  |     pickContact: function(win, fail, args) { | ||||||
|  | 
 | ||||||
|  |         var picker = new Windows.ApplicationModel.Contacts.ContactPicker(); | ||||||
|  |         picker.selectionMode = Windows.ApplicationModel.Contacts.ContactSelectionMode.contacts; // select entire contact
 | ||||||
|  | 
 | ||||||
|  |         // pickContactAsync is available on Windows 8.1 or later, instead of
 | ||||||
|  |         // pickSingleContactAsync, which is deprecated after Windows 8,
 | ||||||
|  |         // so try to use newer method, if available.
 | ||||||
|  |         // see http://msdn.microsoft.com/en-us/library/windows/apps/windows.applicationmodel.contacts.contactpicker.picksinglecontactasync.aspx
 | ||||||
|  |         if (picker.pickContactAsync) { | ||||||
|  |             // TODO: 8.1 has better contact support via the 'Contact' object
 | ||||||
|  |         } else { | ||||||
|  | 
 | ||||||
|  |             function success(con) { | ||||||
|  |                 // if contact was not picked
 | ||||||
|  |                 if (!con) { | ||||||
|  |                     fail && setTimeout(function() { | ||||||
|  |                         fail(new Error("User did not pick a contact.")); | ||||||
|  |                     }, 0); | ||||||
|  |                     return; | ||||||
|  |                 } | ||||||
|  | 
 | ||||||
|  |                 // send em back
 | ||||||
|  |                 win(convertToContact(con)); | ||||||
|  | 
 | ||||||
|  |             } | ||||||
|  | 
 | ||||||
|  |             picker.pickSingleContactAsync().done(success, fail); | ||||||
|  |         } | ||||||
|  |     }, | ||||||
|  | 
 | ||||||
|  |     save:function(win,fail,args){ | ||||||
|  |         console && console.error && console.error("Error : Windows 8 does not support creating/saving contacts"); | ||||||
|  |         fail && setTimeout(function () { | ||||||
|  |             fail(new Error("Contact create/save not supported on Windows 8")); | ||||||
|  |         }, 0); | ||||||
|  |     }, | ||||||
|  | 
 | ||||||
|  |     search: function(win, fail, args) { | ||||||
|  |         console && console.error && console.error("Error : Windows 8 does not support searching contacts"); | ||||||
|  |         fail && setTimeout(function() { | ||||||
|  |             fail(new Error("Contact search not supported on Windows 8")); | ||||||
|  |         }, 0); | ||||||
|  |     } | ||||||
|  | 
 | ||||||
|  | 
 | ||||||
|  | } | ||||||
|  | 
 | ||||||
|  | require("cordova/exec/proxy").add("Contacts", module.exports); | ||||||
		Loading…
	
		Reference in New Issue
	
	Block a user