2014-07-10 4 views
1

Est-il possible d'ajouter CardDAV compte programme, car il peut être fait en utilisant manuellement Mail, Contacts, Calendras -> Ajouter un compte option dans Paramètres app.iOS Ajout programme CardDAV compte

En général, est-il possible d'ajouter dans le code tout autre type d'acccount?

Par exemple compte d'échange. J'ai lu quelque part sur le forum que ce n'est pas le cas.

Selon ABSource il semble qu'il n'est pas possible d'ajouter un compte à partir du code. Il y a juste des fonctions pour lire et copier des valeurs à partir d'un enregistrement source approprié

+0

Peut-être que vous devriez préciser la raison pour laquelle vous voulez faire/le cas d'utilisation. Les profils peuvent-ils être une solution à votre problème? – hnh

+0

Bien sûr, dans mon cas, j'ai un serveur CardDav. Si j'ajoute le compte de CardDAV à partir du code, l'application standard Contacts sera en mesure d'obtenir la liste des contacts de CardDAV et de la transférer dans mon carnet d'adresses, ou il y aura des services d'arrière-plan qui ajouteront des contacts à mon carnet d'adresses. Sinon, je devrai demander au serveur une liste d'enregistrements, et les télécharger (télécharger les vCards). – siarheibrazil

Répondre

3

Oui, vous pouvez créer un "configuration profile": un plist dans lequel vous pouvez spécifier le profil du compte CardDav. Vous pouvez trouver des informations sur le format dans la documentation Apple sous Card Dav payload.

Voici un exemple:

<?xml version="1.0" encoding="UTF-8"?> 
<!DOCTYPE plist PUBLIC "-//Apple Inc//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd"> 
<plist version="1.0"> 
<dict> 
    <key>PayloadVersion</key> 
    <integer>1</integer> 

    <key>PayloadUUID</key> 
    <string>randomUUID</string> 

    <key>PayloadType</key> 
    <string>Configuration</string> 

    <key>PayloadIdentifier</key> 
    <string>com.example.carddav</string> 

    <key>Label</key> 
    <string>A Carddav Profile</string> 

    <key>PayloadContent</key> 
    <array> 
    <dict> 

     <key>CardDAVAccountDescription</key> 
     <string>A Carddav Description</string> 

     <key>CardDAVHostName</key> 
     <string>carddav.example.com</string> 

     <key>CardDAVPrincipalURL</key> 
     <string>/principals/userid/</string> 

     <key>CardDAVUsername</key> 
     <string>userId</string> 

     <key>CardDAVPassword</key> 
     <string>password</string> 

     <key>PayloadDescription</key> 
     <string>Configures CardDAV account</string> 

     <key>PayloadIdentifier</key> 
     <string>com.example.carddav</string> 

     <key>PayloadOrganization</key> 
     <string>A nice company</string> 

     <key>PayloadType</key> 
     <string>com.apple.carddav.account</string> 

     <key>PayloadUUID</key> 
     <string>randomUUID</string> 

     <key>PayloadVersion</key> 
     <integer>1</integer> 
    </dict> 
    </array> 
</dict> 
</plist> 

Rappelez-vous d'enregistrer le fichier avec ".mobileconfig". extension.

Alors si vous êtes intéressé sur la façon dont vous pouvez ouvrir un profil de configuration par programmation, vous pouvez regarder cette question https://stackoverflow.com/questions/2338035/installin g-a-configuration-profile-on-iphone-programmatically