2017-06-26 1 views

Répondre

1

Vous devez vous inscrire pour les fichiers que vous souhaitez être en mesure de gérer dans votre tiapp.xml:

<?xml version="1.0" encoding="UTF-8"?> 
<ti:app xmlns:ti="http://ti.appcelerator.org"> 
    <ios> 
     <plist> 
      <dict> 
       <key>CFBundleDocumentTypes</key> 
       <array> 
        <dict> 
         <key>CFBundleTypeName</key> 
         <string>Add to Housters</string> 
         <key>CFBundleTypeRole</key> 
         <string>Viewer</string> 
         <key>LSHandlerRank</key> 
         <string>Owner</string> 
         <key>LSItemContentTypes</key> 
         <array> 
          <string>com.adobe.pdf</string> 
          <string>com.microsoft.word.doc</string> 
         </array> 
        </dict> 
       </array> 
      </dict> 
     </plist> 
    </ios> 
</ti:app> 

Ensuite, dans le code de votre application, chaque fois que l'événement resume est tiré (par exemple, Ti.App.addEventListener('resume', resume);), vous pouvez regarder Ti.App.getArguments().url pour voir si votre application a été ouverte via une autre application. Dans mes applications, je fais cela, plus je scanne le dossier Inbox pour voir s'il y a quelque chose. Lorsqu'une autre application ouvre un document dans votre application, il est copié dans ce répertoire, puis votre application est lancée. Donc, Ti.Filesystem.getFile(Ti.Filesystem.applicationDataDirectory, 'Inbox').getDirectoryListing() || [] vous obtiendra un tableau de tous les documents, que vous pouvez ensuite sortir de ce répertoire, ou gérer et supprimer.

+0

Merci beaucoup, j'ai adapté votre exemple à mon application, en changeant les types par jpg, png et gif, et cela fonctionne parfaitement. –

+0

Bien! Celui-là était un ours à comprendre, en particulier le fait de regarder dans Inbox pour les fichiers. (J'ai trop peur de regarder et de voir si c'est une pratique recommandée, puisque ça marche plutôt bien!) –